sábado, 10 de diciembre de 2011

Aprender idiomas con OpenTeacher

¿Quieres aprender vocabulario de un idioma de manera casi divertida?
¿Quieres ser tu propio maestro y decidir que palabras quieres aprender?
Pues bién, hay programas que permiten el auto aprendizaje de idiomas a base de insistir en preguntarte las palabras que no contestas adecuadamente, de esa manera las palabras que conoces se refuerzan y las que no conoces tienes que aprenderlas tras las repeticiones.

Muchos de esos programas son de pago pero como no, siempre hay algo en el software libre y además, creo que de bastante calidad.

El programa en concreto se llama OpenTeacher.
http://openteacher.org/

Enlace de descarga de la versión 2.2.1 para Ubuntu en .deb
http://sourceforge.net/projects/openteacher/files/openteacher/2.2.1/openteacher_2.2.1_all.deb/download

El programa es bastante intuitivo:


Creas una lista de palabras como en el ejemplo, y cuando estés listo le das al botón "Ingresar" y comenzará el test (en el que se puede cambiar la forma de dar las respuestas)

Mi consejo es crear una lista y guardarla, de esta maner siempre tendrás una lista de preguntas de un tema en concreto.

Pero os pondré un par de listas que he preparado:

------------------------------------------------
Cortesía social, (Español-inglés):


a su/tu salud = cheers
adiós ; hasta la vista = goodbye
adiós = bye-bye
bienvenido = welcome
buena suerte = good luck
buenas noches = good night ; night-night
buenas tardes = good afternoon
buenas tardes ; buenas noches = good evening
buenos días = good morning
cúanto lo siento = how sorryIam
felicidades = congratulations
feliz año nuevo = happy new year
feliz cumpleaños = happy birthday
feliz navidad = merry christmas
gracias = thanks
hasta la noche = see you tonight
hasta luego = see you later
hasta pronto = see you
hola = hello ; hi
hola ¿qué hay? = hi. what's up? ; hi. what's new?
perdón = excuse me
perdón ; lo siento = sorry
¿cómo está usted? = how do you do?
¿cómo está/estás? = how are you?
¿qué tal? = how are things?
¿y usted/tú? = and you?
adiós definitivo = farewell ; adieu
agradecer = to thank
bien ; vale ; tirando = ok, okay
bien, gracias = fine, thanks
buenos deseos = good intentions
de nada ; faltaría más = don't mention it
deseos de felicidad = wishes for happiness
disculparse = to apologize
encantado de conocerle/te = pleased to meet you
estrecharle la mano a alguien = to shake hands with
felizmente ; por fortuna = fortunately
guardar un feliz recuerdo = to have happy memories of
le presento a… = I'd like to introduce you to...
me alegro de verle/te = nice to see you
muchos recuerdos = kindest regards
muy bien = very well
no hay de qué ; de nada = not at all
por favor = please
presentar = to introduce
señor = sir
señora = madam
sí, por favor = yes please

-----------------------------------------------------
Cuerpo humano, (Español-inglés):

arteria = artery
articulación = joint
barbilla ; mentón = chin
boca = mouth
brazo = arm
cabeza = head
cadera = hip
cara = face
ceja = eyebrow
cerebro = brain
cintura = waist
codo = elbow
corazón = heart
costado = side
costilla = rib
cráneo = skull
cuello = neck
dedo de la mano = finger
dedo del pie = toe
diente/dientes = tooth/teeth
encías = gums
espalda = back
espina dorsal ; columna vertebral = spine
estómago = stomach
frente = forehead
genitales = genitals
hígado = liver
hombro = shoulder
hueso = bone
labio = lip
mandíbula = jaw
mano = hand
mejilla = cheek
miembro ; extremidad = limb
muñeca = wrist
músculo = muscle
muslo = thigh
nariz = nose
nervio = nerve
nudillo = knuckle
ojo = eye
ombligo = navel ; umbilicus
oreja = ear
pantorrilla = calf
párpado = eyelid
pecho = chest
pelo = hair
pestaña = eyelash
pie = foot
piel = skin
pierna = leg
pulmón = lung
puño = fist
riñones = kidneys
rodilla = knee
sangre = blood
talón = heel
tobillo = ankle
trasero = bottom
uña = nail
vena = vein

--------------------------------------------
Describiendo personas, (Español-Inglés):
adolescente = adolescent, teenager
adulto/a = adult
adulto; mayor = grown-up
alegre = cheerful
alto = tall
amable = friendly, kind
amable; dulce = sweet
ambicioso = ambitious
anciano; mayor = elderly
apuesto/guapo = handsome
arrogante = arrogant
arruga = wrinkle
aspecto = appearance
atractivo = attractive
bajo = short
barba = beard
bebé = baby
bigote = moustache
bonachón; afable = good-natured
bueno; obediente = well-behaved
calvo = bald
carácter = character
chico/niño = boy
chico; niña = girl
comportarse/portarse = to behave
cruel = cruel
de mal carácter/genio = bad-tempered
de mediana edad = middle-aged
decidido = decisive
delgado = thin
distraído = absent-minded
divertido = amusing
educado = polite
encantador = charming
engreído;vanidoso = conceited
entusiasta = enthusiastic
esbelto; delgado = slim
estúpido = stupid
feo = ugly
flaco = skinny
generoso = generous
gente = people
gordo = fat
gracioso = funny
grosero; maleducado = rude
guapa/o = beautiful
guapo = good-looking
guapo(chicas,bebés); bonito = pretty
hombre = man
inteligente = intelligent
joven = young, youth
listo = clever
loco = crazy
malo = bad
malo = nasty
malo; malvado = wicked
modesto = modest
moreno/oscuro = dark
mujer = woman
nervioso = nervous
niño/a; pequeño/a = toddler
niño/niña = child
optimista = optimist
pecas = freckles
pelo = hair
perezoso = lazy
persona = person
pesimista = pessimist
preocupado; inquieto = anxious
rubio = blond, fair
señor; caballero = gentleman
señora = lady
sensato; razonable = sensible
sensible = sensitive
serio = serious
simpático = nice
tacaño = mean
tez/cutis = complexion
tierno; dulce = gentle
tímido = shy
tío; tipo = chap
tonto = silly
tranquilo = calm, quiet
travieso; malo = naughty
valiente = brave
viejo = old

-------------------------------------------------
Sentimientos, (Español-Inglés):

aburrido = bored ; weary
afable = affable ; pleasant
agradecido = grateful
alegre = happy ; joyful ; cheerful
alegría = joy
ambicioso = ambitious
amor = love
angustioso = distressing
anormal = abnormal
ansioso ; inquieto = anxious
apasionado = extremely ; passionately fond
apático = apathetic ; indifferent
asombrado ; atónito = amazed
asombrado ; sorprendido = astonished
astuto = astute
aterrorizado = terrified
autoritario = authoritarian
avergonzado = ashamed
avergonzado ; en un apuro = embarrassed
bueno = good
celoso = jealous
conformista = conformist ; orthodox
contento = glad
deprimido = depressed
desdichado = unhappy
desilusionado , decepcionado = disappointment
disgustado ; afectado = upset
egoísta = selfish ; egoistic ; egoistical
embaucador = deceptive ; deceiving
emotivo = emotional
encantado = delighted
energico = vigorous
enfadado = angry
entusiasmado ; emocionado ; nervioso = excited
envidioso = envious
esperanza = hope
felicidad = happiness
feliz ; contento = happy
furioso = furious
grito = scream
hipócrita = hypocritical
humor = mood
impaciente ; ansioso , ilusionado = eager
impresión ; shock = shock
individualista = individualistic
infeliz = miserable
inteligente = intelligent ; clever
ira = rage
irritable = irritable
lástima = pity
llorar = to cry
malvado = evil ; wicked ; villainous
melancólico = melancholic ; melancholy ; gloomy
miedo = fear
molesto ; enfadado = annoyed
necesidad = need
nervioso = nervous
odio = hate
optimista = optimistic
orgullo = pride
orgulloso = proud ; arrogant ; haughty
pesimista = pessimistic
placer = pleasure
preocupación = worry
rabia ; ira = rage
rebelde = rebellious
rencoroso = rancorous
risa = laughter
satisfecho = satisfied
satisfecho ; contento = pleased
sentimiento = feeling
sonrisa = smile
sorprendido = surprised
sorpresa = surprise
suspiro = sigh
terror = terror
ruborizarse = to blush
sonreir = to smile
triste = sad
tristeza = sadness
valiente = valiant ; courageous ; brave
vergüenza = shame
violento = violent
voluntarioso = willing

---------------------------------------------------------

Eso es todo, espero que os sirva.

Un saludo.

viernes, 2 de diciembre de 2011

Diseñar animaciones y videojuegos con blender

Hola a todos, hoy vengo a hablaros sobre blender.

Blender es un programa para siseño 3D que contiene integrado un motor de juegos llamado EBG (Engine Blender Game)




Nada mejor que un video como ejemplo de animación 3D:


Caráceteristicas:
(Citando Wikipedia)
  • Multiplataforma, libre, gratuito y con un tamaño de origen realmente pequeño comparado con otros paquetes de 3D, dependiendo del sistema operativo en el que se ejecuta.
  • Capacidad para una gran variedad de primitivas geométricas, incluyendo curvas, mallas poligonales, vacíos, NURBS, metaballs.
  • Junto a las herramientas de animación se incluyen cinemática inversa, deformaciones por armadura o cuadrícula, vértices de carga y partículas estáticas y dinámicas.
  • Edición de audio y sincronización de video.
  • Características interactivas para juegos como detección de colisiones, recreaciones dinámicas y lógica.
  • Posibilidades de renderizado interno versátil e integración externa con potentes trazadores de rayos o "raytracer" libres como kerkythea, YafRay o Yafrid.[4]
  • Lenguaje Python para automatizar o controlar varias tareas.
  • Blender acepta formatos gráficos como TGA, JPG, Iris, SGI, o TIFF. También puede leer ficheros Inventor.
  • Motor de juegos 3D integrado, con un sistema de ladrillos lógicos. Para más control se usa programación en lenguaje Python.
  • Simulaciones dinámicas para softbodies, partículas y fluidos.
  • Modificadores apilables, para la aplicación de transformación no destructiva sobre mallas.
  • Sistema de partículas estáticas para simular cabellos y pelajes, al que se han agregado nuevas propiedades entre las opciones de shaders para lograr texturas realistas.

Obtener blender
Blender está disponible para casi todas las plataformas.

Para los usuarios de linux pueden descargarlo desde los repositorios con el comando:
sudo apt-get install blender

Para los que usen otros sistemas y no tengan blender instalado o quieran la última versión pueden descargarlo desde la web oficial en el que la última actualización a la fecha de escribir estas lineas es la 2.60a:

http://www.blender.org/download/get-blender/

    ¿Cómo aprender?
    En la siguiente dirección hay un curso básico descargable con todos los ejercicios, texturas y ejemplos que vayas a necesitar para hacerlo.
    Es de libre distribución y por tanto no temas en descargar el CD y grabarlo.

    http://www.esi.uclm.es/www/cglez/fundamentos3D/index.html

      Para el tema de los videojuegos yo creo que lo mejor es empezar por aquí:

       He encontrado un blog que está mudando a un sitio web propio (pongo los dos) en el que el autor se ha tomado la molestia de crear una serie de video tutoriales donde explica paso a paso como crear un juego con blender entre otros tutoriales muy faciles de seguir, en el que explica técnicas de modelado 3D, trucos para iluminación y otras cosas muy interesantes tanto para desarrollar un juego como para la creación de videos de animación 3D.

      Web antigua abandonada, pero con multitud de videos y tutoriales.
      http://fisicomolon.blogspot.com/

      Sitio en desarrollo donde se mantienen las actividades, grupos, usuarios y demás actividades mudadas desde el blog anterior.
      http://fisicomolon.soft10.es/joomla/

      Canal en youtube de Fisicomolon:
      http://www.youtube.com/user/fisicomolon


      Texturas y modelos

      Y aquí una dirección en el que hay gran cantidad de modelos no comerciales la mayoría bajo licencia Creative Common:
      http://www.blendswap.com/

      Aquí añado una dirección en la que encontráis un programa de código abierto en con el que se pueden generar modelos humanos en 3D y exportarlos a blender u otros programas.
      El resultado es impresionante tanto en texturas como definición de mallas.
      También crea el esqueleto con todos los huesos emparentados y funcionales (menos los dedos de las manos y pies), una maravilla.
      http://www.makehuman.org/


      Jugar desde internet
      Insertar tu juego en tu web para poder ejecutarlo desde el navegador es sencillo con un plugin en desarrollo pero ya con versiones estable llamado BursterPlugin.
      Es un plugin que se instala en el navegador y permiter poder ejecutar tu juego desde internet.
      La ventaja de hacer eso es que no tienes que crear un ejecutable del juego, ya que Burster usa el archivo original .blend con lo que sorteamos problemas de codigo propietario que al parecer usa el ejecutable que genera blender.

      Es gratuito pero ofrecen un servicio de codificación del archivo .blend de manera que quede protegido y nadie pueda ver su contenido.
      Ese servicio extra cuesta unos 30 € creo... y se usa para el desarrollo del plugin.

      http://geta3d.com/

      Un saludo a todos.

      Editado:
      Añado un vídeo demostrativo de Tracking Motion que hice hace tiempo, espero que os guste...

      La caja de cereales no está ahí, tampoco la silla de la derecha ni obiamente, las letras de blender.... todo está generado por separado con blender y unido al video con Tracking Motions

      viernes, 4 de noviembre de 2011

      Usar tmux para obtener mas flexibilidad en consola

      Tmux viene de "terminal multiplexor".

      ¿Para qué sirve?
      Pues muy sencillo, nos sirve para abrir varias sesiones de shell en una misma sesión de consola.

      ¿Como lo hace?
      El usuario puede partir la pantalla por la mitad vertical u horizontalmente, y a su vez esas nuevas pantallas se pueden dividir de igual forma.

      En cada "ventana" está corriendo una shell diferente y por tanto pueden correr aplicaciones simultáneamente en cada una de ellas.

      Un uso que le puedes dar es, por ejemplo para navegar buscando cosas en la web y al mismo tiempo estás creando un archivo de texto o moviendo carpetas... o yo que sé... jejeje

      Así que podrías partir la ventana por la mitad verticalmente, y usar la pantalla de la izquierda para navegar, la derecha superior para escribir un script y tener libre la inferior derecha para lo que sea.

      Ejemplo:

      Esto a lo mejor no lo veis muy útil si estáis trabajando en un entorno de ventanas (aunque nos ahorraríamos tener muchas ventanas abiertas) pero nos puede servir enormemente si estamos en un entorno sin ventanas, como puede ser una tty.

      Bien, si os está convenciendo y queréis probarlo podéis instalarlo así:

      scorpyo@pc-cito:~$ sudo apt-get install tmux

      Para saber más sobre el podéis acudir al manual:

      scorpyo@pc-cito:~$ man tmux

      Y aquí os dejo una chuletilla que me pasó hace tiempo mi amigo pipe de "tuxapuntes" de como hacer algunas cosas con él:


      Ctrl+b p    Ir a la ventana anterior
      Ctrl+b &    Matar la ventana actual, incluye todos los paneles
      Ctrl+b x    Matar panel actual
      Ctrl+b ,    cambiar el nombre de la ventana actual
      Ctrl+b %    Dividir verticalmente la ventana actual en dos paneles
      Ctrl+b "    Dividir horizontalmente la ventana actual en dos paneles
      Ctrl+b q    Mostrar brevemente los números de cada panel
      Ctrl+b o    Cambiar al siguiente panel
      Ctrl+b ?    Lista todas las combinaciones de teclas de control
      Ctrl+b w    Lista todas las ventanas
      Ctrl+b núm    Moverse a la ventana seleccionada (0-9). No al panel!
      Ctrl+b up    Ir al panel de encima
      Ctrl+b down    Ir al panel de abajo
      Ctrl+b left    Ir al panel de la izquierda
      Ctrl+b right    Ir al panel de la derecha
      Ctrl+b t    Muestra en el panel un reloj digital
      Ctrl+b s    Elegir sesión
      Ctrl+b [    Entra en modo scroll con la teclas del cursor. Termina pulsando q
      Espero que os sea de utilidad.

      Un saludo.

      sábado, 22 de octubre de 2011

      Respeto para todos los usuarios

      A ver, esta entrada va para la peña que solo sabe hablar peste de otros sistemas sin saber como funciona.

      Todos los sistemas operativos (a partir de ahora, "SO") tienen su parte buena y mala.

      Cada uno tiene sus ideales, y lo que es bueno para ti puede ser malo para otro, pero lo importante es que a ti te sirva.

      Yo personalmente me inclino por Linux.
      Para mi, lo veo más sencillo que otros SO's en los que te ves atados de pies y manos cuando sucede algo,  y además, no sabes que sucede porque los mensajes binen codificados.

      Ejemplo:



      Ala!, y se queda tan pancho.

      En Linux por ejemplo hay logs (registros del sistema) casi para todo. Y más aún para los fallos.

      Pero el mensaje que quiero transmitir es el siguiente:

      (En voz en off)
      Trolls del planeta, por favor dejad de dar porculo en los foros y blogs de la gente que al contrario que vosotros, quiere ayudar, nadie os pide que cambies de sistema, de hecho, no nos interesa a ningún (en el caso de Linux) Linuxero que un troll acabe usando Linux, porque no contribuyen en nada y además sois malos hasta con vosotros.

      Quedarse en vuestro sistema, sea el que sea, y no deis la paliza con frases como:

      "¿Linux para seres humanos?"
      "Linux es una mierdaaaa XXX es el mejor"
      "Mac echa peste"
      "Android tal tal tal tal"

      Conozco a mucha gente que dice que tal sistema o tal otro es una mierda, y luego resulta que no tienen ni puta idea de como administrar su sistema y tiene que venir el vecino o amigo de turno a apañarlo.
      Es decir, putea a un SO comparándolo con el suyo, pero no sabe como funciona ninguno de los dos. Eso no tiene lógica ninguna.

      Y para los que dicen:
      -sí sí pero en tal sistema operativo sale un fallo y lo arreglas en 3 minutos.

      Les diré que...

      Normalmente esos 3 minutos son:
      -Averiguar el fallo, (El soporte suele ser de pago, acude a la comunidad que, contra más volcada esté en ayudar antes lo arreglas.)
      -Encontrar una solución en la Web (normalmente un parche que en la mayoría de los casos no sabes ni de donde viene ni que es lo que hace)
      -Y por último aplicarlo (eso si no necesita un manual para hacerlo)

      ¿3 minutos? Algo más creo yo...
      Además, ¿quien te dice que el parche no tenía un virus o código malicioso?

      Eso es otro punto, me asombra extremamente la mala idea que pueden gastar algunos windoseros.... pasando archivos con virus a posta o ignorando a alguien con un problema.

      Personalmente, nunca he visto una comunidad más unida que la que genera el software libre.
      Me asombra la cantidad de gente que hay apoyándolo y ayudandose los unos a los otros sin mas que ser reconocido como un cooperante más.
      En el software libre todos somos un transporte de conocimiento, nadie nace sabido, así que lo que uno intenta es enseñar lo máximo que sepa sin dejar nada para sí, así, el conocimiento crece y crece...

      Con todo esto no acuso a nadie en particular, ni digo que todos sean así, tampoco digo que no haya gente así en linux, claro que los hay, hay prepotentes, arrogantes, resabidos e ignorantes egoístas.
      Así, que por favor, esto va para todos los users en general...
      Vamos a llevarnos bien y si hacéis una crítica, hacedlo con fundamentos, que eso nos ayuda a todos a plantearnos nuestros errores y mejorar nuestro sistema preferido.

      Un saludo a todos.

      viernes, 21 de octubre de 2011

      Solución a que "acpi=off" cause problemas como apagar el pc o ver estado de la batería

      Muchos tenemos que desactivar ACPI desde el grub o desde la BIOS para poder usar Ubuntu.

      El problema biene despues por los daños colaterales que causa el desactivar ACPI.
      -No muestra la batería.
      -No muestra algunos sensores.
      -Hay que apagar el pc de forma manual.

      De todas esas, la que yo creo que da más palo es apagar el pc con el botón, supuestamente el pc no sufre, ya que el sistema para todos los procesos, para los discos y detiene todos los trabajos en memoria... (O eso debería)

      Pero bueno, aquí una posible solución para, por lo menos, poder apagar de forma automática.

      Funciona a partir de la versión 9.10

      No lo he podido probar al 100% pero es un rayito de luz para quien quiera probar.

      Hay que añadir el comando acpi=force al archivo /etc/default/grub.......

      scorpyo@toshiba:~$ sudo nano /etc/default/grub
      En las primeras líneas buscamos esta línea:
      GRUB_CMDLINE_LINUX=""
      Y lo que tenemos que hacer es añadir el comando "acpi=force" entre las comillas quedando así:

      GRUB_CMDLINE_LINUX="acpi=force"

      Ahora, presionamos Ctrl+o para guardarlo, confirmamos presionando "enter" y salimos del editor con Ctrl+x.

      Ahora actualizamos el grub así:
      scorpyo@toshiba:~$ sudo update-grub2


      Reiniciamos el pc, aún no han hecho efectos los cambios, lo hará la primera vez que vuelva a encender.

      Un saludo y espero que sirva.

      Autor: PedroLuis
      Fuente: http://www.ubuntu-es.org/node/120425

      jueves, 20 de octubre de 2011

      Encender un ordenador remotamente

      Hola de nuevo.
      En este tutorial lo que pretendo es mostrar como encender un pc desde otro pc, claro está, siempre que haya una conexión entre ellos (internet, lan local, etc).
      Explicaré todos los pasos necesarios para que podáis conseguir hacer esto.

      Lo primero es lo primero, información, ya que no todos sabéis de informática, es mejor que el tutorial comience..... así. XD

      Un poco de información:
      Cuando un pc se apaga, la fuente de alimentación o batería mantiene la corriente en la placa base a bajo nivel.

      Normalmente las placas se valen de esto para mantener la fecha y hora del sistema aún cuando la pila de la placa está agotada, pero hay mas cosas que puede hacer la placa, como encender el pc mediante cualquier pulsación del teclado o mediante la activación de un determinado evento en una tarjeta PCI.

      Casi todas la placas de hoy en día permiten el arranque mediante estas opciones añadidas a la BIOS (Pequeño chip que controla la placa base).

      Comprobaciones:
      A nosotros lo que nos interesa es hacer que el pc se encienda a travez de la tarjeta de red, así que lo primero que tenemos que hacer en el pc que queremos arrancar remotamente, es saber si soporta esta cualidad.
      Encendemos el pc, y durante el arranque de este accedemos a la BIOS presionando la tecla 'suprimir' o 'DEL', aunque en muchas placas no sirven estos botones y hay que utilizar otros, estos suelen indicarse durante el arranque con frases como "Press F2  for BIOS Setup", en tal caso presionaríamos F2 y accederíamos a la BIOS.

      Una vez dentro, tendríamos que buscar la sección POWER y activar la opción de "despertar por PCI" que en la BIOS puede aparecer como Power On by PCI Devices o el Power On by PCI Cards

      Bien, si tenemos estas opciones significa que la placa permite encender remotamente, así que la habilitamos colocando su valor a ENABLE (Habilitado).

      Ok, ahora vamos asta la opción exit, y salimos guardando los cambios "Exit and save configuration"

      Configuración de tarjeta:
      Ahora, ya tenemos activada la opción en nuestra BIOS, pero queda comprobar si nuestra tarjeta de red es capaz de quedarse  'despierta' cuando el ordenador se apaga y avisar a la placa para que se encienda el pc cuando alguien le da la orden.
      Esta capacidad se conoce como WOL, que son las siglas de Wake On Lan (despertar/levantar por LAN) y vamos a ver si nuestra tarjeta lo soporta accediendo a nuestro maravilloso mundo que es la terminal de linux.
      Lo dicho, encendemos nuestro sistema Linux del pc que queremos arrancar remotamente, y abrimos una terminal.

      Lo primero que necesitamos es conocer si nuestra tarjeta soporta la opción WOL, así que instalaremos una pequeña aplicación que nos servirá tanto como para comprobar esto, como para activarlo.


      scorpyo@toshiba:~$ sudo apt-get install ethtool

      Con eso se instalará el programa ethtool.
      Cuando termine la instalación comprobamos cual es nuestra tarjeta de red así:

      scorpyo@toshiba:~$ ifconfig

      Esto nos devolverá algo como:
      eth0      Link encap:Ethernet  direcciónHW 60:4b:a6:50:74:ea  
                ACTIVO DIFUSIÓN MULTICAST  MTU:1500  Métrica:1
                Paquetes RX:65802 errores:0 perdidos:0 overruns:0 frame:0
                Paquetes TX:65893 errores:0 perdidos:0 overruns:0 carrier:0
                colisiones:0 long.colaTX:1000
                Bytes RX:10748466 (10.7 MB)  TX bytes:4209197 (4

      Bien, lo que os he resaltado en azul, es importante.

      eth0 Ese es el nombre asignado a la tarjeta de red, en vuestro caso puede ser eth0 o eth1...
      60:4b:a6:50:74:ea Es la dirección MAC de la tarjeta de red, que es único.

      Debéis apuntar la dirección MAC, ya que la usaremos para despertar la tarjeta desde otro ordenador.

      Ahora que ya sabemos como se llama nuestra tarjeta (en mi caso eth0) pues comprobamos si la tarjeta soporta wol usando ethtool así:

      scorpyo@toshiba:~$ sudo ethtool eth0
      [sudo] password for scorpyo:
      Settings for eth0:
          Supported ports: [ TP MII ]
          Supported link modes:   10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
          Supports auto-negotiation: Yes
          Advertised link modes:  10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
          Advertised pause frame use: No
          Advertised auto-negotiation: Yes
          Speed: 10Mb/s
          Duplex: Half
          Port: MII
          PHYAD: 0
          Transceiver: internal
          Auto-negotiation: on
          Supports Wake-on: pumbg
          Wake-on: d
          Current message level: 0x00000033 (51)
          Link detected: no

      De nuevo, os resalto la información importante en azul.
      Si os aparece el parámetro Wake-on: d vamos por buen camino, aunque la d significa que está desactivado.

      Vamos a activarlo de la siguiente manera:


      scorpyo@toshiba:~$ sudo ethtool -s eth0 wol g

      Y para comprobar que ahora está activado:

      scorpyo@toshiba:~$ sudo ethtool eth0
       
      [sudo] password for scorpyo:
      Settings for eth0:
          Supported ports: [ TP MII ]
          Supported link modes:   10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
          Supports auto-negotiation: Yes
          Advertised link modes:  10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
          Advertised pause frame use: No
          Advertised auto-negotiation: Yes
          Speed: 10Mb/s
          Duplex: Half
          Port: MII
          PHYAD: 0
          Transceiver: internal
          Auto-negotiation: on
          Supports Wake-on: pumbg
          Wake-on: g
          Current message level: 0x00000033 (51)
          Link detected: no

      Como veis, ahora está activada con la opción "g" esto hace que la tarjeta despierte con un MagicPacket (paquete mágico).

      El MagicPacket es una señal que se le manda a la dirección MAC que comienza con FF FF FF FF FF FF y sigue con 16 repeticiones de la dirección MAC que queremos despertar.

      La opción wol puede activarse de muchas otras maneras, pero la que nos interesa a nosotros es esta. Para mas info sobre esto usar el "man ethtool"

      Perfecto, ahora ya hemos hecho que la tarjeta sepa que ha de quedarse a la escucha siempre y cuando apaguemos el pc de forma adecuada, es decir, sin tirar del cable o sacar la batería, o sin apagar a lo bestia desde el botón.... jejeje.

      Encendiendo el pc remotamente: 

      Para hacer esto es fundamental que el ordenador que queremos encender, esté apagado... jjajajaja ¿claro no? 

      Ahora en serio, para arrancar el pc solo necesitamos usar el comando wakeonlan y saber su dirección mac (que ya la apuntamos más arriba) 

      Primero instalamos la aplicación, aunque casi seguro que ya la tenéis instalada...

      scorpyo@toshiba:~$ sudo apt-get install wakeonlan

      Lo segundo y último, es despertar el pc.


      Si estamos en su misma red, bastará con:

      scorpyo@toshiba:~$ sudo wakeonlan  60:4b:a6:50:74:ea

      Y si estamos desde internet en otro lugar del mundo.. jejeje tenemos que hacerlo añadiendo antes de la mac, la dirección ip del router en el que está conectado el pc, o la dirección ip del pc si este se conecta a internet directamente sin router.

      scorpyo@toshiba:~$ sudo wakeonlan 82.125.12.14 60:4b:a6:50:74:ea

      Y eso os devolverá algo como:

      Sending magic packet to 255.255.255.255:9 with 60:4b:a6:50:74:ea

      Y el pc, debe de comenzar a arrancar el solito...

      Por cierto, normalmente no debe de haber problema atravesando el router, pero si experimentáis problemas al despertar el pc como que no os obedece podéis configurar el router para que os mande los paquetes entrantes por el puerto 9 hacia la dirección de difusión que suele ser la 192.168.0.255

      Espero que os haya servido.

      lunes, 26 de septiembre de 2011

      Detector de presencia por bluetooth

      Esto, más que nada es una vacilada.... pero bueno, tal vez le saquéis provecho.

      La idea original es de Javier Perez y el script está algo modificado pero todo el mérito es suyo.
      http://javierperez.eu/bloqueo-y-desbloqueo-de-pantalla-por-detector-de-presencia-en-ubuntu-con-bluetooth-aimtooth/
      Se trata de bloquear la pantalla (o cualquier cosa que se nos ocurra) cuando nos alejamos del ordenador de manera automática, y volver a desbloquearla cuando nos acercamos sin tocar absolutamente nada.

      Necesitamos que nuestro ordenador disponga de bluetooth y de un terminal movil también con bluetooth.

      Para ello nos ayudamos de un script que lo que hace es crear continuamente un vínculo con nuestro terminal móvil y comprobar la calidad de la señal, si esta baja de un mínimo, significa que nos estamos alejando, con lo que la pantalla se bloquea, y si nos acercamos, la calidad sube y por tanto la pantalla se desbloquea.

      El script es el siguiente:

      ------------ Copia el texto --------------
      #!/bin/bash

      export INTERFACE="6H:A8:84:4B:54:F6"

      while true; do

      hcitool cc ${INTERFACE}

      sleep 1

      Signal="`hcitool lq ${INTERFACE}`"

      echo $Signal

      if [ "${Signal##*: }" -lt 240 ]; then
          echo "Baja señal"
          sudo -u scorpyo gnome-screensaver-command --lock

      else

          if [ "${Signal##*: }" -gt 240 ]; then
              echo "Conectado"
              sudo -u scorpyo gnome-screensaver-command --deactivate

          else
         
              echo "Desconectado"
              sudo -u scorpyo gnome-screensaver-command --lock
      fi
      fi

      hcitool dc ${INTERFACE}
      done
      -----------------FIN DE TEXTO---------------

      Copiad el texto a un archivo de texto.
      Sustituir lo que está en negrita por vuestros datos, scorpyo es mi usuario, vosotros poned el vuestro.

      El primer parámetro... el de los numeros y letras separados por ":"  es el identificador de vuestro terminal movil, si queréis saber cual es el vuestro abrid una terminal y teclear:

      scorpyo@pc:~$ hcitool scan
      Scanning ...
          6H:A8:84:4B:54:F6    Scorpyo
          H6:G5:D2:4S:B1:43    Maria

      Como veis, yo puse el número que identifica a mi terminal.

      Guardáis el archivo, le dais permisos de ejecución de una de estas dos formas:

      -Botón derecho sobre el archivo, Propiedades, luego pincháis en la pestaña "permisos" y por último marcáis la casilla de "permitir ejecutar el archivo como un programa"

      O también desde una terminal con el comando:

      -scorpyo@pc:~$ sudo chmod +x /ruta/del/archivo

      Para ejecutar el archivo debemos hacerlo con poderes de administrador.
      Abrimos una terminal y ponemos:

      scorpyo@pc:~$ sudo ./ruta/del/archivo

      Bien, ahora solo tendréis que comprobar como os va si os alejáis del ordenador y os acercáis..... y modificar si es necesario los valores de calidad del enlace... por si son demasiado exigentes para vuestro movil o demasiado tolerante...

      Podéis darle otras utilidades así que dadle vueltas al coco y si se os ocurre modificaciones comentadlas y compartidlas.


      ---------------------------------------------------

       He trabajado en una modificación del script que lo hace más elegante, mas facil de usar y menos trabajoso, ya que el original te puede bloquear la pantalla por un error tuyo o del bluetooth.

      Mejoras:

      -No es necesario cambiar nada en el script si se usa Gnome, ya que está preparado para añadir a las variables del programa los datos necesarios para no tener que hacer cambios en él script.

      -Integración con el escritorio Gnome mediante Zenity.

      -Se instalan paquetes necesarios para poder mandar mensajes al usuario en panatalla (pc)

      -Hace un escaneo de los dispositivos y te presenta una lista, así es más fácil elegir el teléfono.

      -Se notifica al usuario de los datos y acontecimientos mediantes mensajes con botones

      -Se crea un perfil del teléfono para mejor seguimiento.

      -Se avisa al usuario del móvil al que está vinculado el programa.

      -Controla la presencia del móvil antes de empezar, si este no existe se aborta el arranque del programa.

      -Se han introducido mejoras para evitar bloquear la pantalla por un "pico" de baja intensidad.

      -No es necesario ejecutarlo desde una ventana de terminal.

      -Relanzando el script se activa o desactiva el seguimiento del terminal móvil.

      -Crea un acceso directo al escritorio si se desea.

      El Script es el siguiente, está claro que no será el mejor, pero cumple con su cometido.
      ------------------------------------------------------
      Bluedetecth-gnome-Scorpyo Megaupload
      ------------------------------------------------------
      Si os sirve espero que comentéis... así sabré que no me puse a trabajar en el para nada.

      Un saludo.

      jueves, 8 de septiembre de 2011

      Lanzar una aplicación al inicio en un determinado escritorio

      A mucha gente, le gusta, por ejemplo lanzar determinada aplicación para que se inicie al arrancar el sistema y hacer login, hasta ahí perfecto.
      Pero el problema es que la mayoría de las veces, ese programa no nos interesa que esté abierto en el escritorio principal de trabajo, si no que queremos que se lance hacia otro escritorio.....

      Eso, ha fecha de hoy no he encontrado a nadie que lo haya conseguido directamente, si mediante el programa devilspie, que a mi parecer requiere bastantes conocimientos y para lo que queremos creo yo que es más sencillo esto que he inventado, algo rudimentario pero con un efecto muy chulo y elegante, a la vez que efectivo.

      Esta entrada, he de admitir que me ha dado mucha guerra poder llevarla a cabo... tras decenas de pruebas y errores lo he conseguido tras una noche entera delante de la pantalla y sin dormir he creado un sript facil de usar, además, quedará un efecto muy muy elegante para lo que queremos hacer.

      Bien, aquí hay una diferencia en el método.
      Si usas compiz o si no lo usas, ya que el comando cambia.

      Instalando aplicaciones necesarias
      scorpyo@pc:~$ sudo apt-get install wmctrl

      -Si usas compiz:

      Debes instalar el centro de control de compiz para activar un par de efectos que son necesarios para el correcto funcionamiento.

      scorpyo@pc:~$ sudo apt-get install compizconfig-settings-manager

      Ahora abriremos dicha aplicación en Sistema > Preferencias > Administrador de opciones de compiz config

      En el apartado "Escritorio" activamos "Cubo de escritorio" y "Girar cubo" lo configuramos si queremos para que esté a nuestro gusto, o lo dejamos como está por defecto.


      Creando el script
      Ahora, nos queda crear el scrip que hará todo el trabajo por nosotros que posteriormente haremos que se inicie en nuestra sesión.

      Este script hace lo siguiente:

      -Creará un bucle y no saldrá de este hasta conseguir su objetivo.

      -Comprobará si compiz ya está activo, si no lo está, seguirá el bucle.

      -En cuanto esté compiz activo, el script ejecutará los comandos necesarios para girar el cubo a la cara 2 (vosotros lo podéis cambiar) esperar un par de segundos mientras se posiciona y termina la transisión, lanza el programa que queremos y vuelve inmediatamente hacia el escritorio 1.

      Ok.

      Abriremos una terminal para trabajar.
      Creamos una carpeta en nuestro directorio personal para guardar nuestro scrip

      scorpyo@pc:~$ mkdir ~ /mis-aplicaciones

      Creamos el script que girará el cubo y ejecutará el programa.

      scorpyo@pc:~$ gedit ~/mis-aplicaciones/script-windows (vosotros poned el nombre que queráis, yo lanzaré una máquina de virtualbox con windows)

      Ahora copiamos todo esto:

       -----------------Copia el texto------------------

      #!/bin/bash

      #    Este es un script que girará su escritorio y lanzará una o varias aplicaciones.
      #    Copyright (C) <2011> <Miguel Ponce Torres>
      #
      #    Este programa es software libre: usted puede redistribuirlo y / o modificar
      #    bajo los términos de la GNU General Public License publicada por
      #    la Free Software Foundation, bien de la versión 3 de la Licencia, o
      #    (A su elección) cualquier versión posterior.
      #
      #    Este programa se distribuye con la esperanza de que sea útil,
      #    pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de
      #    COMERCIALIZACIÓN o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
      #    Licencia Pública General GNU para más detalles.
      #
      #    Debería haber recibido una copia de la Licencia Pública General GNU
      #    junto con este programa. Si no, vea <http://www.gnu.org/licenses/>.
      #
      #    Si quiere contactar con <Miguel Ponce Torres> puede hacerlo en: miguelponcetorres@gmail.com
      #
      # Este script usa el comando wmctrl con las variantes siguientes:
      # wmctr -o <valor>      Para compiz
      # wmctrl -s <valor>     Para metacity
      #
      #
      # Bucle a la espera de corroborar que copiz está en ejecución.
      NOZOMBY=0
      while n=0
      do

          #Se comprueba si el gestor de ventanas está corriendo
          ps -A | grep compiz
       
          #Si está corriendo el valor de $? es 0
          if [ $? = "0" ]
          then

              # Espera un segundo y gira el cubo
              #hacia la derecha una vez
              sleep 1
              wmctrl -o 1366,0

              # Le damos 2 segundos antes de seguir para que se
              # posisione el cubo
              sleep 2

              # Comando o comandos separados por ; que ejegutará el script
              vboxmanage startvm Windows
        
              # Volvemos al escritorio 1
              wmctrl -o 0,0
              break
          else

              sleep 1
              let NOZOMBY=NOZOMBY+1
              echo "Aún no está listo el gestor de ventanas.... $NOZOMBY intentos"
              if [ $NOZOMBY = "10" ]
              then
                  exit

              fi
          fi

      done

      ---------------------Fin-------------------
      Lo que está en verde, es el gestor de ventanas que estés usando, en mi caso uso compiz así que es el que espera a que se ejecute, si no lo hace en cierto tiempo, el escrit se terminaría para no quedar zombi.

      Lo que está en rojo es el comando o lista de comandos separados por retornos de carro o ";" que se ejecutan con el script.

      Lo que está en morado es el ancho de la resolución de vuestro escritorio si usas compiz, si usas metacity es el número de escritorio si no estáis seguros de la posisión en la que está el escritorio al que queréis mandar la aplicación, os movéis a dicho escritorio, y abrid una terminal para poner:

      scorpyo@pc:~$ wmctrl -d
      0  * DG: 5464x768  VP: 1366,0  WA: 0,0 1366x731  Área de trabajo 1

      El valor VP es el que te interesa en mi caso es:
      0,0 en el escritorio 0
      1366,0 en el escritorio 1
      2732,0 en el escritorio 2
      4098,0 en el escritorio 3

      Nota, fijaros que el valor de la resolución simplemente se va sumando...
      Siempre con el decimal.

      Nota: El área de trabajo no cambia, ya que compiz trabaja de otra forma pero no importa.

      Para hacer una prueba en directo ahora mismo si tienes compiz, en la terminal pon:

      scorpyo@pc:~$ wmctrl -o resolución-escritorio-2;sleep 2;wmctrl -o 0,0

      Eso hará que el escritorio gire al lado que hayas puesto y tras dos segundos volverá al escritorio 1

      Bien, si tuviésemos metacity en lugar de compiz, el valor morado es simplemente el número del escritorio al que queremos movernos pero el comando cambia:

      scorpyo@pc:~$ wmctrl -s 1
      o
      scorpyo@pc:~$ wmctrl -s 2
      o

      scorpyo@pc:~$ wmctrl -s 3

      Etc....


      Para hacer una prueba en directo ahora mismo si tienes metacity, en la terminal pon:

      scorpyo@pc:~$ wmctrl -s número-de-escritorio;sleep 2;wmctrl -s 0

      El número de escritorios empieza por 0
      0 ----> Escritorio1
      1 ----> Escritorio2
      2 ----> Escritorio3
      3 ----> Escritorio4


      Cuando tengamos el script terminado, lo gardamos y cerramos gedit.
      Ahora le damos permisos de ejecución así:


      scorpyo@pc:~$ chmod +x ~/mis-aplicaciones/script-windows (cambia script-windows por el nombre de tu script)
       
      Conseguir que se inicie en tu sesión
      En la terminal nos moveremos a la carpeta /home/tu-usuario/.config/autostart y crearemos un lanzador para nuestra aplicación

      scorpyo@pc:~$ gedit ~/.config/autostart/script-windows.desktop 

      Pegamos lo siguiente:

      [Desktop Entry]
      Type=Application
      Name=Nombre de la aplicaicón
      Comment=Arranca máquina virtual y la manda al escritorio 2 (descriptción)
      Icon=
      Exec=/home/scorpyo/mis-aplicaciones/script-windows



      Tu solo haz de cambiar lo que está en gris claro para que cuadre con tus datos y con tu script.

      Guardamos y reiniciamos para ver como funciona.

      Así queda mi ejemplo


      Espero que os haya servido.


      miércoles, 7 de septiembre de 2011

      Accede a tu pc desde internet de forma segura con SSH

      En este tutorial, voy a explicar como instalar openssh-server para poder conectarnos a nuestro pc desde una LAN o desde internet.

      También lo configuraremos de manera que sea más seguro y añadiremos extras de seguridad.


      Instalación y configuración de ssh

      Para empezar, vamos  a instalar openssh-server

      Abrimos una terminal y :

      scorpyo@pc:~$ sudo apt-get install openssh-server

      Como el programa una vez instalado, se ejecuta, pues lo vamos a parar... para que no esté andando.

      scorpyo@pc:~$ sudo service ssh stop

      Ahora, vamos a modificar los parámetros de ssh para que sea más seguro.

      El archivo que configura ssh está en /etc/ssh/sshd_config, así que en la misma terminal ponemos:

      scorpyo@pc:~$ sudo nano /etc/ssh/sshd_config

      *Yo he usado nano, pero podeis usar gedit si preferís así:

      scorpyo@pc:~$ gksu gedit /etc/ssh/sshd_config

      Bien, ahora las opciones que tenemos que cambiar o añadir si no están son estas:

      -Cambiar el puerto:
      Por defecto, ssh usa el puerto 22, pero a nosotros no nos interesa eso, ya que es algo que cualquiera sabe, nos interesa poner otro puerto, ejemplo.... 4428, entonces tenemos que cambiar el parametro Port.
      Quedaría así:
      Port 4428

      -Cambiar o añadir osuarios permitidos:
      Por defecto, si tienes solo un usuario no hace falta, pero si tienes varios usuarios en tu pc, y quieres decidir quien pueden entrar por ssh a su cuenta desde el exterior, puedes ponerlo en el siguiente apartado, será entonces cuando solo se puedan conectar los usuarios que pongas ahí:

      AllowUsers scorpyo

      -Disminuir el tiempo de cortesía para logearse:
      Por defecto suele venir en 120... pero eso es demasiado tiempo, si te sabes la contraseña, por muy larga que sea no tardas más de 8 segundos en colocarla, así que quien tarde más de 30 segundos es que no la sabe... lo pondremos en 30 segundos y mucho es.

      LoginGraceTime
      30

      -No permitir login de root
      Es importante, que nadie pueda acceder como root al sistema, y si queremos hacer tareas administrativas siempre podremos usar sudo.

      PermitRootLogin no

      -Maximos intentos de loguin erroneos hasta cerrar sesión:
      Por si alguien está intentando averiguar la contraseña, esto le incordiará bastante, ya que lo que hacemos es cerrar la conexión tras un limites de intentos, en el ejemplo he puesto 2.

      MaxAuthTries 2

      (esto no evita que vuelca a conectar y reintentar otras claves)

      Bueno, con esto ya tenemos lista nuestra configuración de ssh.
      Guardamos y cerramos Gedit.
      Si estamos editando con nano apretamos Ctrl+o para guardar, le damos enter para confirmar y salimos con Ctrl+x


      Otras medidas de seguridad

      Ahora, vamos a tomar otras medidas de seguridad.

      Hay que tener en cuenta algo primordial, aquí estamos usando la clave del usuario para iniciar sesión por ssh, es decir, si tu clave de usuario es "pepe", vamos por muy mal camino, es una clave super facil.

      Así que unos consejos:

      -No usar claves que puedan encontrarse en un diccionario, tales como... silla, calabaza, hermano, perro.... ni nombres propios... ni fechas de nacimiento.

      -Usad siempre palabras inventadas como PerricopterO14?Alf
      Anda, ¡que averigüen eso!... jajaja

      Así, que si creéis que buestra contraseña no es segura, cambiadla.

      Lo mejor es crear un par de claves RSA o RDA de manera que no haya claves viajando por la conexión, aunque sea SSH se corren riesgos...
      Más adelante crearé un tutorial para crear una pareja de claves RSA y dejar de usar el login tradicional y pondré un enlace aquí.


      Sigamos...

      Todos sabemos que mediante fuerza bruta se pueden sacar claves aunque sean difíciles como la de arriba... puede llevar horas, semanas o meses, pero eso, al que está atacando le da igual.

      Pues nosotros vamos a ponérselo más difícil aún... vamos a Banear (impedir conexión) a todos los que hagan cierta cantidad de intentos de acceso con claves erróneas.

      Para eso necesitamos instalar fail2ban, así que en la misma terminal ponemos:

      scorpyo@pc:~$ sudo apt-get install fail2ban

      Ahora lo vamos a configurar para que sea un poco más duro en su trabajo... Va a pegar guantazos y todo... jajaja

      Igual que antes vamos a editar con nano o gedit el archivo /etc/fail2ban/jail.conf así que....

      scorpyo@pc:~$ sudo nano /etc/fail2ban/jail.conf

      Tenemos que ir hasta el apartado [ssh] y veremos los situientes parámetros:

      [ssh]

      enabled = true
      port   = ssh
      filter  = sshd
      logpath  = /var/log/auth.log
      maxretry = 6


      Pues bien, hay que hacer cambios... nos aseguraremos de que el valor de enabled está en true ya que si etá en false significa que no controlará las conexiones ssh.

      port (puerto a controlar)
      El puerto está establecido como el que usa por defecto ssh, que es el 22 pero nosotros lo cambiamos para más seguridad, así que hay que especificarlo, el nuestro era el 4428

      port = 4428

      maxretry (intentos de conexión antes de banear)
      Aquí pondremos el numero de veces que una determinada IP puede intentar hacer login de forma errónea...
      Si supera ese límite el programa fail2ban impedirá la conexión de esa ip durante un tiempo establecido por defecto en 10 minutos.

      maxretry = 4


      Quedaría algo así:

      [ssh]

      enabled = true
      port    = 4428
      filter  = sshd
      logpath  = /var/log/auth.log
      maxretry = 4

      Ok, ya tenemos configurado la mayor parte, pero como soy muy malo, a mi, 10 minutos de baneo me parecen muy pocos... ya que como tiene 4 intentos por cada 10 minutos, significa que tiene 20 intentos por hora y 480 por día.. me parece una burrada... así, que vamos a complicarlo..

      Buscamos el apartado Defaults que está casi arriba y buscamos la opción bantime.

      Esta opción es el tiempo de baneo en segundos... así que en vez de 600 que són 10 minutos, le pondremos algo más, yo le pongo 1680 segundos que son 28 minutos.

      bantime 1680

      Esto, reduce considerablemente el uso de ataques a nuestro pc.

      Ya, creo que hemos terminado con la seguridad, ahora, guardamos todo.
      Apretamos Ctrl+o para guardar, le damos enter para confirmar y salimos con Ctrl+x

      Bien, ahora relanzamos el programa fail2ban para que tome las nuevas opciones

      scorpyo@pc:~$ sudo service fail2ban restart

      Y también lanzamos de nuevo ssh que lo paramos anteriormente

      scorpyo@pc:~$ sudo service ssh start


      Cortafuegos y routers

      Ahora tenemos que configurar nuestro cortafuegos para que permita las conexiones entrantes al puerto 4428 que es el que hemos puesto.

      Si estámos tras un router tendrá también su propio cortafuegos, así que tendremos que añadir este puerto y redirigirlos hacia nuestro pc... para eso no voy a hacer un tutorial, pero has de tener una ip fija o asegurarte de que el router siempre asigna el puerto 2248 a tu pc mediante mac o como sea.
      Hay muchos tutoriales en internet.


      Probando nuestra conexión desde el exterior o desde LAN

      Pues listo, ya podemos conectarnos desde otro pc al nuestro de la siguiente forma:

      Por ejemplo, mi ip (la del exterior, es decir, con la que salimos a internet) es la 83.168.154.124 y mi usuario en la máquina en la que quiero conectarme es scorpyo, pues haré lo siguiente:

      scorpyo@pc:~$ ssh -p 4428 scorpyo@83.168.154.124

      -p es para especificar el puerto, ya que nosotros lo hemos cambiado, si no lo ponemos  el comando ssh usaría por defecto el 22 y no podríamos conectarnos.

      La IP es facil averiguarla si queréis acceder desde la misma red local, por ejemplo tipeando en una terminal:

      scorpyo@pc:~$ nm-tool | grep Address
        HW Address:        70:F1:A1:16:BE:3E
          Address:         192.168.0.106
        HW Address:        70:5A:B6:80:72:EA
      Ahí la tenéis... la 192.168.0.106 (siempre tengo la misma dentro de la red local)

      Si queréis acceder desde internet podéis averiguar vuestra ip de muchas maneras, hay páginas en internet que os la dicen, también sale en el router... etc.

      Como la mayoría de las ip's que nos asignan los proveedores de internet, son ips dinámicas, (esto significa que no siempre es la misma) pues eso añade el problema de que tenemos que estar constantemente averiguando la ip del pc, y si estamos fuera de casa, pues es un problemón.

      Para eso, os podeis hacer una cuenta en http://dyn.com/dns/ o en http://www.no-ip.com/
      Añadís los datos al router (no todos los routers soportan esta opción) y de esta manera, podríais tener un dominio tipo mimakina-remota.dyndns.org o mimakina-remota.no-ip.com y esta siempre os redirigiría hacia la ip actual que tengas.

      Así yo me conectaría por ejemplo de esta manera:


      scorpyo@pc:~$ ssh -p 4428 scorpyo@la-pcera.dyndns.org

      Listo, ahora mismo eso es todo, y es lo mínimo que debéis de hacer para tener un servicio ssh mínimamente seguro.


      Lo mejor es no tener activo ssh cuando no se necesite o cerrar el puerto en el cortafuegos.

      Una forma de incrementar notablemente la seguridad es creando una pareja de claves RSA:
      Tutorial y explicación sobre parejas de claves RSA

      domingo, 4 de septiembre de 2011

      Conocer lo mínimo sobre Ubuntu

      Esta entrada la hago porque mucha gente como yo, al principio no sabe nada de Ubuntu ni el mundo que lo rodea, no sabíamos como iban las cosas, como se organizan y como "funciona" el sistema operativo.

      Aquí intentaré explicar a groso modo varios aspectos para que conozcamos más este sistema operativo y como está organizado.

      Nombre de ubuntu y versiones
      El origen de el nombre de Ubuntu viene de la ideología sudafricana Ubuntu («Igualdad/Lealtad hacia otros.»).
      El número de las versiones está determinado por el día de lanzamiento oficial de cada versión. 
      La versión está compuesta por año y mes AA/MM
      La versión actual liberada es la 11.04 (Abril de 2011) y como es una distribución que se lanza cada 6 meses pues es fácil saber que la siguiente será la 11.10.
      El nombre que acompaña a Ubuntu en cada lanzamiento de versión es siempre un animal y un adjetivo.
      La 11.10 se llamará Oneiric Ocelot que traducido significa Ocelote onírico
      Ocelote es una especie de leopardo y onírico es de los sueños o relativo a ellos... así que lo podríamos traducir como "El leopardo de ensueño"

      El corazón que lo mueve.....
      El corazón de Ubuntu es su núcleo Linux, que es el que controla todo el sistema.

      Linux es un núcleo de sistema operativo libre, es decir, es modificable, gratuito.
      Al ser libre, cuenta con miles de programadores trabajando en él todos los días, y siempre hay actualizaciones de este, nunca se queda desfasado mientras haya alguien trabajando para implementar hardware en Linux y no suele haber agujeros de seguridad por más de un par de horas ya que estos son encontrados rápidamente y subsanados.

      Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés, Linus Torvalds, en 1991 el cual sigue trabajando en el y dando visto bueno a todos los cambios que se hacen en el núcleo.

      Interfaz gráfica
      Antes de nada, hay que aclarar que el núcleo de Linux es totalmente operativo pero carece de una interfaz gráfica sencilla.
      Esto se soluciona instalando una interfaz gráfica que se ejecuta quedando en primer plano mientras el Linux sigue trabajando, pero esta vez todo lo hacemos mediante botones y ventanas... mas agradable para muchos.

      La interfaz gráfica es llamada X y esta necesita de un entorno de escritorio para poder interactuar con el usuario.

      Hay diferentes tipos de entornos de escritorios, unos diseñados con pocos efectos para máquinas lentas otros con muchos efectos y atajos de teclado para más comodidad y otros que destacan por su diseño, iconos y demás.
      Los más comunes son:
      GNOME
       Usada por defecto en las versiones de Ubuntu hasta la versión 11.04, en la que se ha optado por UNITY

      KDE
      Usada para la distribución alternativa de Ubuntu, Kubuntu.
      Muy elegante pero con mayor consumo de recursos.

      LXDE
      Usada para la distribución alternativa de Ubuntu, Lubuntu.
      Especialmente para máquinas lentas.

      UNITY
      Usada para la distribuciones actuales de ubuntu 11.04 y 11.10

      XFCE
      Usada para la distribución alternativa de Ubuntu Xubuntu.

      Otros entornos:

      MEZZO
      AMBIENT
      ETOILÉ
      GCOEX
      SUGAR
      ROX DESKTOP

      Como está organizado sus sistema de ficheros
      Antes de nada, hay que saber que Ubuntu es una distribución libre de sistema operativo basado en Debian, que es otra distribución. Ambas tienen núcleo Linux.

      En todos los sistemas Linux todo, absolutamente todo está organizado por ficheros, de modo que si por ejemplo quieres saber algo sobre la CPU, ten claro que hay un fichero en el que se ha escrito información de la CPU que puedes consultar en cualquier momento y así con cualquier cosa.

      El sistema de ficheros de Ubuntu es el siquiente:


      Este esquema ha sido creado por http://www.linuxconfig.org y traducido por Franco Ferrari

      Lo mejor es que siempre tengáis a mano esta imagen hasta que os familiaricéis con la jerarquía en Linux.

      Medios de soporte como HDD CD-ROM DVD o PenDrives

      En Linux, como he dicho arriba todo está organizado y mostrado en directorios, y los medios de almacenamiento de datos tales como Discos Duros o DVD no están excluidos.

      Cuando un disco duro está presente en un sistema linux, este es "montado" en una carpeta para así, hacerlo pertenecer al sistema de archivos y poder acceder a sus datos, cuando este ya no va a ser accedido, se desmonta y de esta manera dejaría de aparecer en el sistema de ficheros.

      Todo esto se hace con el comando mount, aunque hoy día, el sistema lo hace automáticamente cuando estamos usando la interfez gráfica.
      Pero no debemos olvidar de que todo se puede manejar desde una interfaz de solo texto.

      La terminal o consola
      La terminal o consola es una interfaz de texto que nos comunica con el sistema mediante su lengua natural... pero para no comerme mucho el tarro os pondré lo que sale en la wikipedia.. jajaja

      GNOME terminal, también llamado gnome-terminal, es un emulador de terminal para XFree86 escrito por Havoc Pennington y otros. Es parte del proyecto de escritorio libre GNOME. GNOME terminal permite a los usuarios ejecutar comandos usando una interfaz dentro de un entorno de ventanas.
      GNOME Terminal similar al emulador de terminal xterm y proporciona gran cantidad de características similares. Algunas de las más importantes incluyen texto coloreado y gestión de eventos del ratón. Estos eventos se utilizan frecuentemente para aplicaciones que proporcionan una interfaz con ncurses para utilizar los menús o botones que normalmente el usuario debería seleccionar mediante el teclado. GNOME Terminal emula la mayoría de las secuencias de escape soportadas por xterm.[1] Entre las características gráficas que soportan se encuentran las siguientes:
      • Transparencias reales
      • Múltiples pestañas
      • Scroll infinito.
      Gran parte de la funcionalidad de GNOME Terminal viene dada por VTE widget.
      Usuarios, grupos y permisos
       Todo usuario en linux tiene su propia clave su propio escritorio y documentos, su propia carpeta personal y su configuración completamente separada de la de otros usuarios.
      Cada usuario pertenece a un grupo de usuarios, en Ubuntu al crear el primer usuario este pertenece al grupo ADMIN y no existe un usuario ROOT.

      El usuario que diferencia a todos es root.
      La cuenta root es la cuenta de administrador, este puede hacer lo que quiera en el sistema, salir y entrar por cualquier directorio, parar o ejecutar programas sin que estos rechisten (aunque la integridad del sistema esté en juego)

      Al no haber un usuario root en ubuntu, por defecto se le otorgan poderes de administrador al primer usuario creado y a cualquier usuario declarado en el archivo sudoers.
      Para usar estos poderes se usa el comando sudo o gksu (para lanzar aplicaciones que necesiten ser lanzados a la interfaz de Gnome con su propia ventana).

      Aún usando el comando sudo, os encontrareis de que hay cosas que no podéis hacer, esto es porque el comando sudo no os da todos los poderes necesarios en el archivo sudoers y necesitáis ser realmente root para poder llevar a cabo dichas cositas.....

      Por supuesto, cada archivo creado por un usuario, queda marcado con la propiedad de este, es decir, si yo, usuario scorpyo y pertenciente al grupo admin creo un archivo, este archivo mantendrá los valores de mi usuario y grupo.

      Si además, modifico los permisos del archivo, puedo conseguir incluso que nadie pueda hacer nada con el desde otra cuenta excepto root.

      Es más, si root, plantase un archivo en nuestro escritorio con permisos restringidos y usando inmutabilidad del archivo mediante chattr, no podríamos verlo, moverlo y mucho menos borrarlo sin poderes de administrador e incluso con sudo, tendríamos antes que desactivar la inmutabilidad del archivo.

      Para saber más sobre permisos mira este enlace:
      Permisos con chmod

      Para saber más sobre inmutabilidad de un archivo mira este enlace:
      inmutabilizar
       


      Bueno, creo que esto es lo básico que debes de saber sobre Ubuntu.

      Un saludo.