viernes, 27 de mayo de 2011

Administración segura de Linux con sudo


Root es el todopoderoso en Linux. Gracias a nuestra característica errante como seres humanos es muy aventurado usar root. Usando sudo podemos limitar el riesgo y evitar situaciones indeseadas.


Uso de root en linux


La cuenta root en Linux puede hacer todo - ver todos los archivos, correr todas las tareas, matar todos los procesos, ver todos los logs, borrar discos duros, etc. En lo personal, he visto muchos "administradores" que son felices usando root, inclusive que inician sesión en el ambiente gráfico como root. A este tipo de personas también las he visto sufrir y llorar durante días debido a que cometieron errores difíciles de revertir. Por ejemplo: apagar el servidor, borrar el directorio /, activar el firewall, etc.

Afortunadamente, existe una forma de limitar el impacto del error humano, esto se logra con sudo, qué, sencillamente, permite ejecutar comando como root a usuarios que no son root. Eso no le quita lo peligroso, pero si nos va a ahorrar muchos dolores de cabeza.

¿Cómo funciona sudo?

Sudo permite a los usuarios realizar acciones como root. Podemos especificar las cuentas de usuario que pueden hacer tareas especificas. Por ejemplo, si queremos darle permiso al usuario angel para reiniciar apache, angel puede hacer lo siguiente:

angel@angel-Vostro-200:~$ sudo /etc/init.d/httpd restart
Password: #angel's password entered
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Sin ser root, angel pudo reiniciar apache. Adicional a esto, todas las acciones son reportadas a /var/log/messages.

Jun 12 00:00:01 angel-Vostro-200 sudo: angel : TTY = pts/0 ; PWD = /home/angel ; USER = root ; COMMAND = /etc/init.d/httpd restart

Configurando los permisos

Para hacer esto se debe acceder como root y ejecutar visudo.
# visudo

Este es el archivo de configuración de sudoers. Aquí se definen los comandos que vamos a permitir que ejecuten los usuarios como root. Nuestra necesidad es que angel pueda administrar Apache.

Para facilitar la administración, sugiero generar alias de usuario.
User_Alias WEBSERVERADMIN = angel

A continuación se definen los servicios que angel podrá operar.
Cmnd_Alias APACHE = /etc/init.d/httpd start, /etc/init.d/httpd stop, /etc/init.d/httpd restart, /etc/init.d/httpd graceful, /etc/init.d/httpd configtest

Por último, construimos los permisos usando alias de usuario y de comando:
WEBSERVERADMIN ALL= APACHE

Para salir de visudo, presionamos ESC y escribimos :wq en modo comando (igual que en vi)

A partir de este momento, cualquier usuario en el alias WEBSERVERADMIN podrá usar los comandos definidos en  Cmnd_Alias cuando usen sudo.

Nota: No olviden anteponer sudo antes de ejecutar el comando. 

Nos vemos en la siguiente entrada.

lunes, 23 de mayo de 2011

En que se gasta el ancho de banda

Gracias a Calamaris:

# Request-destinations by 2nd-level-domain
destination request % Byte % hit-%
--------------------------------------- --------- ------ -------- ------ ------
*.youtube.com 7976 0.94 7352457K 27.04 1.58
*.megaupload.com 4027 0.48 5835850K 21.46 2.31
*.fileserve.com 571 0.07 1722572K 6.34 54.12
*.adobe.com 10263 1.21 911527K 3.35 1.84
*.fbcdn.net 67661 7.99 641842K 2.36 16.15
*.google.com 57134 6.75 556572K 2.05 5.11
*.windowsupdate.com 11168 1.32 417439K 1.54 0.69
[error] 93760 11.08 374928K 1.38 13.99
*.redtube.com 1268 0.15 372886K 1.37 20.11
*.megavideo.com 470 0.06 368926K 1.36 0.21
*.aol.com 531 0.06 315990K 1.16 0.00
*.funet.fi 16 0.00 240609K 0.88 12.50
*.4shared.com 381 0.05 236309K 0.87 26.25
*.facebook.com 46431 5.49 234650K 0.86 0.98
*.msn.com 15810 1.87 223559K 0.82 4.66
*.jornada.unam.mx 23289 2.75 202666K 0.75 10.65
*.eluniversal.com.mx 17953 2.12 198662K 0.73 44.73
*.cie.unam.mx 6787 0.80 192560K 0.71 12.29
*.flickr.com 5163 0.61 170639K 0.63 0.29
*.mediafire.com 12 0.00 165962K 0.61 0.00
other: 3637 2nd-level-domains 475764 56.21 6452652K 23.73 8.94
--------------------------------------- --------- ------ -------- ------ ------
Como quien dice: dos terceras partes del volúmen de datos es totalmente inútil :-)

viernes, 20 de mayo de 2011

Buscar y Reemplazar en VI

Algo que normalmente hacemos en Win2, en Word, Excel, Notepad y, prácticamente, en cualquier editor gráfico de texto, es usar la función "Buscar y Reemplazar". Pero qué pasa cuando estamos frente a una consola linux, sin ambiente gráfico... Cómo que la cosa se complica, no? Bueno, pues el editor "vi" (vi-ai) nos permite hacer esto de una forma sencilla:

Abran el archivo con vi

$ vi archivo

Vayan a "command mode" presionando la tecla <ESC> y a continuación escriban:

:1,$ s/texto_buscado/reemplazar_con/g

Esto significa, escribir el carácter dos puntos ":" luego definimos el rango de líneas en donde queremos buscar y reemplazar, en este caso decimos: desde la línea "1", luego "," y el "$" que significa la última línea del archivo.

A continuación un "espacio" y "s/" que significa "Search" escribir el texto a buscar, luego "/" escribir el texto con el qué vamos a reemplazar, y por último "/g" para indicar el fin del comando.

:1,$ s/texto_buscado/reemplazar_con/g

Si desean que por cada coincidencia les vaya confirmando el reemplazo solo agreguen una "c" al final:

:1,$ s/texto_buscado/reemplazar_con/gc

Listo, nos vemos en la siguiente entrada.

jueves, 19 de mayo de 2011

Login SSH sin password

En mi estancia en GEE he encontrado que los desarrolladores crean scripts para distribuir archivos a los mirrors, haciendo una especie de mirroring "charro", pero con la magia de no requerir la intervención de un admin y, además, automático.

Supongamos que deseamos usar Linux y OpenSSH para automatizar algunas tareas (cómo la mencionada arriba). Por lo tanto, necesitamos hacer login desde un host "A" con Usuario "a" hacia el host "B" con Usuario "b", y cómo estamos usando ssh desde un script no deseamos introducir el password.

Manos a la obra:

Primero debemos hacer log in en "A" y generar las llaves de autenticación. No introducir passphrase:

a@A:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/angel/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/angel/.ssh/id_rsa.
Your public key has been saved in /home/angel/.ssh/id_rsa.pub.
The key fingerprint is:
dd:1a:a1:bf:28:02:2d:d1:ac:c8:94:7d:cd:7f:a7:28 a@A
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| oo o . |
| o..o. o o o |
|o. +. S o . |
|..+ . o + . |
| o = o |
| . .E o o |
| . .o . |
+-----------------+

Ahora usaremos ssh para crear el directorio ~/.ssh como el usuario "b" en "B" (el directorio ya puede existir):

a@A:~$ ssh b@B mkdir -p .ssh
b@B's password:

Finalmente agregamos la llave pública generada en "A" a b@B:.ssh/authorized_keys e introducir el password de "b" una vez más:

a@A:~$ cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:
a@A:~$

A partir de este momento podremos hacer log in en "B" como "b" desde "A" sin password.

a@A:~$ ssh b@B
Last login: Thu May 19 12:23:06 2011 from 192.168.1.33
[b@B ~]$

También funciona para hacer scp (Secure Copy)
a@A:~$ touch test
a@A:~$ scp test b@B:.
test 100% 0 0.0KB/s 00:00
a@A:~$

Genial!! Nos vemos en la siguiente entrada!!!

miércoles, 18 de mayo de 2011

Gusanos y troyanos se devoran a Internet

Gusanos y troyanos se devoran a Internet
La muerte de Osama Bin Laden y la boda real, dos de los hechos más recientes que sirvieron de excusa para la transmisión de malware. Foto: pandafrance (vía Flickr).

Ayer fue el Día de Internet y en varias partes del mundo se celebraron seminarios, eventos culturales, conferencias, entre otros, para que la fecha tuviera eco mundial y se resaltara la importancia de la Red, que ya superó los 2.000 millones de usuarios.

Además de exaltarse en varios países el poder que tiene Internet, algunas firmas de seguridad se sumaron a la celebración de la Red, pero a su modo: alertando a los usuarios sobre las principales amenazas que existen en el ciberespacio.

Muestra de ello es el más reciente estudio de la firma de seguridad ESET Latinoamérica que asegura que el 64.8% de las infecciones por malware ocurridas el año pasado fueron a través de Internet. Según el informe, entre los principales medios de infección se ubican en primer lugar los sitios web con el 26.4%, seguidos por el correo electrónico (19.3%), la mensajería instantánea (10.6%) y las redes sociales (5.1%).

Con relación a los códigos maliciosos que más se propagan en la Red, la firma analizó las 100 amenazas más populares. Según el análisis, de los códigos más propagados en la región el primer lugar es para los gusanos, con el 48%, y los troyanos, con el 33%.

Sebastián Bortnik, coordinador de Awareness & Research de ESET Latinoamérica, explicó que el dominio de los gusanos y troyanos se debe a que los métodos de propagación se basan en ingeniería social o explotación de vulnerabilidades, es decir, las vías más efectivas para los atacantes, al momento de difundir masivamente sus códigos maliciosos.

“Estos, justamente, son los métodos utilizados por gusanos y troyanos que, según el TOP 100 del malware en la región, son las amenazas que más atentan contra los usuarios, los sistemas y, esencialmente, su información”, dijo Bortnik.

No sobra tener en cuenta…


Pese a las recomendaciones que en varias oportunidades ha hecho ENTER.CO, no sobra que los usuarios tengan en cuenta las siguientes para tener una navegación más segura:

  • No acceder a sitios web de dudosa reputación.
  • Actualizar el sistema operativo y aplicaciones e implementar contraseñas fuertes.
  • Es fundamental utilizar tecnologías de seguridad, como antivirus, antispam y firewall.

Gusanos y troyanos se devoran a Internet

martes, 17 de mayo de 2011

¿Cuánto valen los datos personales para los anunciantes?

La revista Forbes dio a conocer un estudio que revela cuál es el costo de los datos personales que los anunciantes pueden obtener a través de las redes sociales. Todo, a partir de la filtración "errónea" de datos que se descubrió de facebook la semana pasada.