jueves, 1 de septiembre de 2016

Test de velocidad de internet desde línea de comandos en Centos 7

./speedtest-cli


Hola amigos blogueros, hoy les comparto una herramienta muy útil para cuando necesiten hacer una prueba de velocidad de internet en un servidor y obviamente no cuenten con una interfaz gráfica.

Muchos conocerán la página www.speedtest.net que nos permite realizar el test de velocidad, pues bien hay una script elaborado en python por Matt Martz que nos permite hacer uso de esa página pero desde la línea de comandos.

La página de la comunidad donde pueden encontrar más información es: https://github.com/sivel/speedtest-cli

Manos a la obra:
  
1.- Como root hay que instalar un par de  paquetes:

#  yum install python wget

2.- Es necesario descargar el script:

# wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py

3.- Damos permiso de ejecución al script.
  
#  chmod +x speedtest-cli

Una vez realizados estos 3 pasos ya podrán hacer uso de la herramienta ejecutando: 

#  ./speedtest-cli 

La salida del comando deberá de mostrar algo como lo siguiente: 

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Proveedor (10.11.12.13)...
Selecting best server based on latency...
Hosted by Proveedor. (Ciudad) [27.33 km]: 7.977 ms
Testing download speed........................................
Download: 10.53 Mbit/s
Testing upload speed..................................................
Upload: 4.71 Mbit/s


Como pueden apreciar se realiza el test y nos indica la velocidad del download y upload.

Hay que tener en cuenta que el script automáticamente elige el servidor con el cual se hace el test y normalmente está dentro de la misma ciudad o país.

Es posible también especificarle el servidor con el cual queremos hacer el test, esto es útil cuando tenemos un proveedor que tiene dos velocidad una local y otra internacional.

4.- Descargamos la lista de servidores disponibles:

#  wget http://www.speedtest.net/speedtest-servers.php

5.- Supongamos que desean hacer la prueba con el servidor de Miami Florida, para eso ejecutamos lo siguiente:

#  grep 'Miami, FL' speedtest-servers.php | egrep -o 'id="[0-9]{4}"'

Esto nos devuelve todos los id de los servidores de ese estado:

id="1779"
id="4848"
id="6031"
id="3892"
id="4937"
id="6782"


Ahora solo debemos de volver a ejecutar el script pero especificando el id de alguno de esos servidores:

#  ./speedtest-cli --server 1779

Y el resultado será algo como lo siguiente:

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Netlife (10.11.12.13)...
Hosted by Comcast (Miami, FL) [2897.49 km]: 116.076 ms
Testing download speed........................................
Download: 9.81 Mbit/s
Testing upload speed..................................................
Upload: 5.02 Mbit/s

Espero que les sea de utilidad.

Cualquier comentario lo hacen por esta vía o con un tweet a: @Danny_Obando

No se olviden de pasar por mi página en facebook, darle like y compartir. www.facebook.com/deoyecuador

¡ Hasta mi próximo post !  

jueves, 11 de agosto de 2016

Enjaular en su home a usuarios en Linux

-rbash: cd: restringido


Que tal amigos, ¿A cuantos de ustedes les han pedido que den acceso a un usuario para que ejecute una o das tareas en un servidor Linux?.

Creo que a muchos y obviamente estamos conscientes del nivel de riesgo que representaría darles a esos usuarios accesos como root, sobre todo si esos usuarios tienen poco conocimiento de Linux.

En este post les indicaré un método que me ha funcionado bastante bien y no es para nada complicado. 

Vamos a suponer que ya existe un usuario de Linux con nombre operador y necesitamos que NO pueda salir de su home y que solo pueda listar los procesos que están en ejecución. 

Si se ha creado el usuario de la forma tradicional (useradd operador) el home del usuario debe de ser /home/operador y el shell de ejecución es el bash.

Muchas distribuciones Linux soportan usar diferentes shell's y cada uno puede usar el que mejor se adapte a sus necesidades, para poder conseguir que el usuario no pueda cambiarse de directorio vamos a utilizar el rbash que es un shell con funciones restringidas.  

Si quieren más información del rbash les sugiero hechar un vistazo al siguiente URL: https://www.gnu.org/software/bash/manual/html_node/The-Restricted-Shell.html
  
1.- Como root hay que "crear" el shell rbash:

#  cp /bin/bash /bin/rbash

2.- Modificar el usuario operador para que use el rbash:

# usermod -s /bin/rbash operador

Realizados estos dos pasos pueden probar "logeandose" con el usuario operador y podrán comprobar que pueden hacer poco o nada con ese usuario.

Pueden probar por ejemplo ejecutar el comando cd para irse a /opt y la salida del comando debe de ser algo como lo siguiente:

-rbash: cd: restringido

Una vez confirmado que no se puede cambiar de directorio debemos de permitirle que ejecute el comando ps para que pueda ver los procesos en ejecución, para eso debemos de hacer lo siguiente:
   
3.- Ingresar al home de usuario:   

# cd /home/operador

4.- Se debe crear un archivo de nombre .bash_profile:

# vi .bash_profile

Ojo que el nombre del archivo empieza con el punto (.)
 
5.- El contenido de ese archivo es:

# .bash_profile
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# Especificamos la variable de entorno PATH del usuario
PATH=$HOME/bin
export PATH

 
Este script lo que hace primero es verificar si existe el archivo .bashrc, si es verdadero lo ejecuta para entrar al modo interactivo.
Luego especifica la ruta del PATH (PATH=$HOME/bin) que para este caso le vamos a ubicar dentro de la carpeta bin.
Y por último exporta la variable para que esté disponible durante nuestra sesión.

6.- En el directorio $HOME/bin deben de estar los "ejecutables" de los comandos que son permitidos para el usuario, para nuestro ejemplo le debemos de dar acceso para que ejecute el comando ps.

# ln -s /bin/ps /home/operador/bin/

Si se "loguean" con el usuario operador y ejecutan el comando ps podrán notar que si lo permite, la salida del comando debe de ser algo como lo siguiente:

 PID TTY          TIME CMD
 5909 pts/0    00:00:00 rbash
 5966 pts/0    00:00:00 ps


7.- Por último, como usuario root le cambiamos los permisos al archivo para que no lo puedan modificar/borrar:

# chattr +i /home/operador/.bash_profile 

Nota: Si desean que el usuario pueda ejecutar más comandos solo tienen que repetir el paso 6 especificando que comando desean agregar.

Espero que les sea de utilidad.

Cualquier comentario lo hacen por esta vía o con un tweet a: @Danny_Obando

No se olviden de pasar por mi página en facebook y darle like. www.facebook.com/deoyecuador

¡ Hasta mi próximo post !  


martes, 19 de julio de 2016

Escuchar mensajes de voz de WhatsApp por el auricular del teléfono

¡ Escucha sin que otros escuchen tu mensaje de voz !


¿Les ha sucedido que reciben un mensaje de voz por WhatsApp y como no tienen audífonos tienen que escucharlo en alta voz?

Sin temor a equivocarme a más de uno nos ha sucedido este "problema" de que alguien que esté cerca físicamente también escucho el mensaje que nos enviaron, puede que hasta hayamos pasamos alguna vergüenza porque el mensaje no era apto para todo el mundo. ¿Te ha pasado?

Pues bien les comento que si presionan el botón para escuchar el mensaje de voz y se acercan el celular a la cara; igual como si fueran a realizar una llamada telefónica; automáticamente el mensaje de voz se va a reproducir por el auricular y no por altavoz.

Si presionan el botón para escuchar y sale por unos segundos el sonido en alta voz tranquilos, apenas se lo ubiquen en la oreja cambia el método de reproducción.

¿Se sigue reproduciendo por altavoz?

Seguramente no estás ubicando bien el celular, presiona el botón para escuchar y coloca el celular como si fueras a realizar una llamada y listo.
 
Después de algunos intentos comprobaran que pueden lograr escuchar el 100% del mensaje de voz por el auricular.

Nota: Debo de reconocer que yo tampoco sabía que se podía escuchar así los mensajes de voz, así que gracias a mi amiga Maria Elena que me dijo que esto era posible.

¿Les funcionó?

Espero que les sea de utilidad.

Cualquier comentario lo hacen por esta vía o me envían un tweet a: @Danny_Obando

No se olviden de pasar por mi página en facebook y darle like. www.facebook.com/deoyecuador

¡ Hasta mi próximo post !