viernes, 30 de enero de 2009

Cliente Torrent en Consola

rTorrent es un cliente de BitTorrent en modo texto, capaz de rivalizar con otros clientes de interfaz gráfica; en especial por su bajo consumo de recursos.

Esta disponible para cualquier distribución linux, y sin entrar en mas detalles, les paso el site oficial:

http://libtorrent.rakshasa.no/

Para los que utilizan Debian o Ubuntu lo pueden encontrar en los repos e instalar con aptitude, apt-get o el Synaptic. Los Usuarios de otras distro como Fedora o Suse utilizaran sus respectivos Yast o YUM


jueves, 29 de enero de 2009

KDE 4.2

Cuando hace aproximadamente un año que se inició la serie KDE 4, la comunidad de KDE se complace en anunciar hoy la publicación de KDE 4.2, «la respuesta». Esta tercera versión trae una asombrosa cantidad de nuevas características y una gran estabilidad. La comunidad de KDE considera que KDE 4.2 es una opción atractiva para la mayoría de los usuarios finales, tras las versiones anteriores orientadas a los entusiastas.

Para ver la guia oficial de KDE 4.2 seguir el LINK

fuente: barrapunto.com

miércoles, 28 de enero de 2009

Red Hat Enterprise Linux 5.3


Ya está disponible Red Hat Enterprise Linux 5.3 con rendimiento optimizado en virtualización y capacidades de última generación para soporte de procesadores y Java
Las nuevas funcionalidades, ofrecidas a los clientes a través del modelo de suscripción, mejoran la escalabilidad de virtualización, ofrecen funciones OpenJDK y soporte para procesadores Intel Nehalem que permiten a los usuarios ejecutar los trabajos exigentes en plataformas más económicas.

Para ver la nota completa y enterarse las principales mejoras seguir este -> link <-

lunes, 26 de enero de 2009

Instalar Broadcom Corporation BCM4312 802.11b/g (rev 01)

Ahora les voy a explicar paso a paso como se debe compilar el modulo para esta placa, yo lo hice en Debian Lenny y Etch y anduvo, y se que en Ubuntu 8.10 ya viene en el kernel, asi que los que poseen Ubuntu no van a aprender = )

Bueno para los que necesitan instalar esta placa, lo primero y principal es recompilar el kernel, yo lo que hice fue recompilar la misma version de kernel 2.6.26 que viene en Debian Lenny, descargandome los sources y las herramientas para hacerlo, herramientas como compiladores, build essential, etc... Ahora si compilaron un kernel mas nuevo o quieren saber que version del kernel estan utilizando utilizen el comando uname -a o uname -r

En el caso que necesiten una mano para recompilar el kernel dejen comentarios, sino sigo adelante, lo quiero hacer breve pero explicando paso a paso.

Como saber el modelo de la placa wireless que tenemos, con el comando lspci y veremos una linea como la siguiente:

Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)

Bien ahora vamos a descargar desde el sitio de Broadcom el driver para linux:
http://www.broadcom.com/support/802.11/linux_sta.php

Aqui depende del procesador que tengan, si es 64 bit o 32 bit, el mio es 32 bit asi que el archivo que descargo se llama hybrid-portsrc-x86_32-v5_10_27_14.tar.gz

Nos logueamos en la consola como root y creamos el directorio donde vamos a descomprimirlo.
# cd /usr/src/
# mkdir hybrid_wl

Entramos al directorio y copiamos el archivo dentro de el
# cd hybrid_wl
# mv /home/beagle/Desktop/hybrid-portsrc-x86_32-v5_10_27_14.tar.gz .

Ahora vamos a compilar, la primera linea no es obligatoria, pero la ejecutamos igualmente, es por si ya lo compilamos antiguamente y lo queremos recompilar desde cero.
# make -C /lib/modules/2.6.26/build/ M=`pwd` clean
# make -C /lib/modules/2.6.26/build/ M=`pwd`

Listo, si no da errores, debemos poder cargar el modulo
# modprobe ieee80211_crypt_tkip

Bien ahora vamos a hacer que el modulo se cargue automaticamente al iniciar Linux, ademas de guardarlo en su lugar. Primero creamos el directorio y luego copiamos el modulo compilado en el.
# mkdir /lib/modules/2.6.26/kernel/drivers/wlan
# cp wl.ko /lib/modules/2.6.26/kernel/drivers/wlan/

Ahora vamos a agregar el modulo para iniciar desde el arranque
# vim /etc/modules

Agregar debajo de todo estas 2 lineas
ieee80211_crypt_tkip
wl

Pero este modulo , para que lo encuentre se debe agregar en 2 archivos mas, uno es el alias y el otro dep
vim /lib/modules/2.6.26/modules.dep
Agregar debajo de todo
/lib/modules/2.6.26/kernel/drivers/wlan/wl.ko

vim /lib/modules/2.6.26/modules.alias
Agregar debajo de todo
wl.ko wl

Esto es todo, espero les sea util

domingo, 25 de enero de 2009

El país de la silicona, el silicio y los krullos

No, no me he vuelto loco (aún ;-) . El titular viene a cuento de que quería hablar un poco sobre un par de gazapos en la sección de tecnología del diario “El País”. El domingo 18 nos sorprendían con un artículo “El futuro de Apple sin Jobs” en el que se nos hablaba del valle de la silicona. No conocía ese valle… el que más me sonaba era el valle del silicio (Silicon Valley) ;-) Hay que decir que en la edición online corrigieron el error. Pero hoy miércoles vuelven a la carga, a raíz de una entrevista a John ‘maddog’ Hall. Cito: “Hasta el momento, Maddog cuenta con dos prototipos de este teléfono de software libre: Moko y Krullo, ‘que me temo que tampoco suena muy bien’”. Pues sí… especialmente cuando alguien ha transcrito Koolu (la empresa de ‘maddog’) como Krullo. Menos mal que no lo transcribieron como zurullo.

Fuente

viernes, 23 de enero de 2009

Llamado a la solidaridad: Linux en el colegio

Navegando en internet, mas precisamente en vivalinux.com.ar me encontre con lo siguiente que quiero compartir con ustedes:

Emiliano de Buenos Aires nos comenta su experiencia con GNU/Linux y comparte una interesante inquietud para la que pide la colaboración de todos nuestros visitantes:

“Soy un usuario de GNU/Linux %100 migrado hace ya casi un año y mi familia podriamos decir que esta migrada a un %70 (si no fuera por los juegos, estariamos en casi un %100). Por tal motivo dia a dia me fui metiendo más y más en el mundo del Software Libre y más que nada en su filosofía. Todavia me retumba en la cabeza esa frase que lei alguna vez "El conocimiento no se vende, se comparte"”.

“Debido a esto, se me ocurrió la idea de presentar en el colegio a donde asiste mi hija, una propuesta para que migren a Software Libre. No solo por las ventajas prácticas y técnicas que ya todos conocemos, sino también para fomentar a través de la educación, la idea de que existe otra posibilidad a la hora de usar un Sistema Operativo, y no solo los que se nos vende pre-instalado o lo que tenemos que "piratear", "robar", "crackear" o como quieran llamarlo”.

“Y ahi es donde recurro a la comunidad "Linuxera" para que puedan aportame sus experiencias en algún proyecto similar que hayan participado, para que de esta manera, me resulte más fácil poder llevar a cabo el acabado final de mi idea y poder presentarlo oficialmente a las autoridades del colegio”.

“Investigando, pude contactarme con Hernan Palavecino (que para quienes no lo recuerdan, fue quien promovió el uso de Edubuntu en el Laboratorio de Informática de un colegio de la Provincia de Tucumán), quien gentilmente me envió información de su proyecto”.

“Quien esté o haya estado involucrado en algún proyecto similar, si quiere o puede, por favor que se contacte conmigo”.

El e-mail de Emiliano es esturniolo [arroba] gmail [punto] com y todos los samaritanos linuxeros que puedan responder a este llamado serán muy agradecidos.

jueves, 22 de enero de 2009

ADMINISTRACIÓN DE USUARIOS

Linux es un sistema multiusuario, por lo tanto, la tarea de añadir, modificar, eliminar y en general administrar usuarios se convierte en algo no solo rutinario, sino importante, además de ser un elemento de seguridad que mal administrado o tomado a la ligera, puede convertirse en un enorme hoyo de seguridad. En este manual aprenderás todo lo necesario para administrar completamente tus usuarios en GNU/Linux.

Tipos de usuarios

Los usuarios en Unix/Linux se identifican por un número único de usuario, User ID, UID. Y pertenecen a un grupo principal de usuario, identificado también por un número único de grupo, Group ID, GID. El usuario puede pertenecer a más grupos además del principal.

Aunque sujeto a cierta polémica, es posible identificar tres tipos de usuarios en Linux:


    Usuario root
  • También llamado superusuario o administrador.
  • Su UID (User ID) es 0 (cero).
  • Es la única cuenta de usuario con privilegios sobre todo el sistema.
  • Acceso total a todos los archivos y directorios con independencia de propietarios y permisos.
  • Controla la administración de cuentas de usuarios.
  • Ejecuta tareas de mantenimiento del sistema.
  • Puede detener el sistema.
  • Instala software en el sistema.
  • Puede modificar o reconfigurar el kernel, controladores, etc.
    Usuarios especiales
  • Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc.
  • Se les llama también cuentas del sistema.
  • No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen distintos privilegios de root.
  • Lo anterior para proteger al sistema de posibles formas de vulnerar la seguridad.
  • No tienen contraseñas pues son cuentas que no están diseñadas para iniciar sesiones con ellas.
  • También se les conoce como cuentas de "no inicio de sesión" (nologin).
  • Se crean (generalmente) automáticamente al momento de la instalación de Linux o de la aplicación.
  • Generalmente se les asigna un UID entre 1 y 100 (definifo en /etc/login.defs)
    Usuarios normales
  • Se usan para usuarios individuales.
  • Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home.
  • Cada usuario puede personalizar su entorno de trabajo.
  • Tienen solo privilegios completos en su directorio de trabajo o HOME.
  • Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root, y cuando se requiera hacer uso de comandos solo de root, utilizar el comando su.
  • En las distros actuales de Linux se les asigna generalmente un UID superior a 500.

/etc/passwd

Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el archivo de configuración 'passwd', ubicado dentro del directorio /etc. Este archivo es de texto tipo ASCII, se crea al momento de la instalación con el usuario root y las cuentas especiales, más las cuentas de usuarios normales que se hayan indicado al momento de la instalación.

El archivo /etc/passwd contiene una línea para cada usuario, similar a las siguientes:

root:x:0:0:root:/root:/bin/bash
sergio:x:501:500:Sergio González:/home/sergio:/bin/bash

La información de cada usuario está dividida en 7 campos delimitados cada uno por ':' dos puntos.

/etc/passwd
Campo 1Es el nombre del usuario, identificador de inicio de sesión (login). Tiene que ser único.
Campo 2La 'x' indica la contraseña encriptada del usuario, además también indica que se está haciendo uso del archivo /etc/shadow, si no se hace uso de este archivo, este campo se vería algo así como: 'ghy675gjuXCc12r5gt78uuu6R'.
Campo 3Número de identificación del usuario (UID). Tiene que ser único. 0 para root, generalmente las cuentas o usuarios especiales se numeran del 1 al 100 y las de usuario normal del 101 en delante, en las distribuciones mas recientes esta numeración comienza a partir del 500.
Campo 4Numeración de identificación del grupo (GID). El que aparece es el número de grupo principal del usuario, pero puede pertenecer a otros, esto se configura en /etc/groups.
Campo 5Comentarios o el nombre completo del usuario.
Campo 6Directorio de trabajo (Home) donde se sitúa al usuario después del inicio de sesión.
Campo 7Shell que va a utilizar el usuario de forma predeterminada.

/etc/shadow

Anteriormente (en sistemas Unix) las contraseñas cifradas se almacenaban en el mismo /etc/passwd. El problema es que 'passwd' es un archivo que puede ser leído por cualquier usuario del sistema, aunque solo puede ser modificado por root. Con cualquier computadora potente de hoy en día, un buen programa de descifrado de contraseñas y paciencia es posible "crackear" contraseñas débiles (por eso la conveniencia de cambiar periódicamente la contraseña de root y de otras cuentas importantes). El archivo 'shadow', resuelve el problema ya que solo puede ser leido por root. Considérese a 'shadow' como una extensión de 'passwd' ya que no solo almacena la contraseña encriptada, sino que tiene otros campos de control de contraseñas.

El archivo /etc/shadow contiene una línea para cada usuario, similar a las siguientes:

root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1::
sergio:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1::

La información de cada usuario está dividida en 9 campos delimitados cada uno por ':' dos puntos.

/etc/shadow
Campo 1Nombre de la cuenta del usuario.
Campo 2Contraseña cifrada o encriptada, un '*' indica cuenta de 'nologin'.
Campo 3Días transcurridos desde el 1/ene/1970 hasta la fecha en que la contraseña fue cambiada por última vez.
Campo 4Número de días que deben transcurrir hasta que la contraseña se pueda volver a cambiar.
Campo 5Número de días tras los cuales hay que cambiar la contraseña. (-1 significa nunca). A partir de este dato se obtiene la fecha de expiración de la contraseña.
Campo 6Número de días antes de la expiración de la contraseña en que se le avisará al usuario al inicio de la sesión.
Campo 7Días después de la expiración en que la contraseña se inhabilitara, si es que no se cambio.
Campo 8Fecha de caducidad de la cuenta. Se expresa en días transcurridos desde el 1/Enero/1970 (epoch).
Campo 9Reservado.

/etc/group

Este archivo guarda la relación de los grupos a los que pertenecen los usuarios del sistema, contiene una línea para cada usuario con tres o cuatro campos por usuario:

root:x:0:root
ana:x:501:
sergio:x:502:ventas,supervisores,produccion
cristina:x:503:ventas,sergio

  • El campo 1 indica el usuario.
  • El campo 2 'x' indica la contraseña del grupo, que no existe, si hubiera se mostraría un 'hash' encriptado.
  • El campo 3 es el Group ID (GID) o identificación del grupo.
  • El campo 4 es opcional e indica la lista de grupos a los que pertenece el usuario

Actualmente al crear al usuario con useradd se crea también automáticamente su grupo principal de trabajo GID, con el mismo nombre del usuario. Es decir, si se añade el usuario 'sergio' también se crea el /etc/group el grupo 'sergio'. Aun asi, existen comandos de administración de grupos que se explicarán más adelante.


pwconv y pwunconv

El comportamiento por defecto de todas las distros modernas de GNU/Linux es activar la protección extendida del archivo /etc/shadow, que (se insiste) oculta efectivamente el 'hash' cifrado de la contraseña de /etc/passwd.

Pero si por alguna bizarra y extraña situación de compatibilidad se requiriera tener las contraseñas cifradas en el mismo archivo de /etc/passwd se usaría el comando pwunconv:

#> more /etc/passwd
root:x:0:0:root:/root:/bin/bash
sergio:x:501:500:Sergio González:/home/sergio:/bin/bash
...
(La 'x' en el campo 2 indica que se hace uso de /etc/shadow)
#> more /etc/shadow
root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1::
sergio:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1::

#> pwunconv
#> more /etc/passwd
root:ghy675gjuXCc12r5gt78uuu6R:0:0:root:/root:/bin/bash
sergio:rfgf886DG778sDFFDRRu78asd:501:500:Sergio González:/home/sergio:/bin/bash
...
#> more /etc/shadow
/etc/shadow: No such file or directory
(Al ejecutar pwunconv, el archivo shadow se elimina y las contraseñas cifradas 'pasaron' a passwd)

En cualquier momento es posible reactivar la protección de shadow:

#> pwconv
#> ls -l /etc/passwd /etc/shadow
-rw-r--r-- 1 root root 1106 2007-07-08 01:07 /etc/passwd
-r-------- 1 root root 699 2009-07-08 01:07 /etc/shadow

Se vuelve a crear el archivo shadow, además nótese los permisos tan restrictivos (400) que tiene este archivo, haciendo sumamente difícil (no me gusta usar imposible, ya que en informática parece ser que los imposibles 'casi' no existen) que cualquier usuario que no sea root lo lea.


/etc/login.defs

En el archivo de configuración /etc/login.defs están definidas las variables que controlan los aspectos de la creación de usuarios y de los campos de shadow usadas por defecto. Algunos de los aspectos que controlan estas variables son:

  • Número máximo de días que una contraseña es válida PASS_MAX_DAYS
  • El número mínimo de caracteres en la contraseña PASS_MIN_LEN
  • Valor mínimo para usuarios normales cuando se usa useradd UID_MIN
  • El valor umask por defecto UMASK
  • Si el comando useradd debe crear el directorio home por defecto CREATE_HOME

Basta con leer este archivo para conocer el resto de las variables que son autodescriptivas y ajustarlas al gusto. Recúerdese que se usaran principalmente al momento de crear o modificar usuarios con los comandos useradd y usermod que en breve se explicaran.



Añadir usuarios con useradd

useradd o adduser es el comando que permite añadir nuevos usuarios al sistema desde la línea de comandos. Sus opciones más comunes o importantes son las siguientes:

  • -c añade un comentario al momento de crear al usuario, campo 5 de /etc/passwd
  • -d directorio de trabajo o home del usuario, campo 6 de /etc/passwd
  • -e fecha de expiración de la cuenta, formato AAAA-MM-DD, campo 8 de /etc/shadow
  • -g número de grupo principal del usuario (GID), campo 4 de /etc/passwd
  • -G otros grupos a los que puede pertenecer el usuario, separados por comas.
  • -r crea una cuenta del sistema o especial, su UID será menor al definido en /etc/login.defs en la variable UID_MIN, además no se crea el directorio de inicio.
  • -s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica, bash, es el que queda establecido.
  • -u UID del usuario, si no se indica esta opción, automáticamente se establece el siguiente número disponible a partir del último usuario creado.

Ahora bien, realmente no hay prácticamente necesidad de indicar ninguna opción ya que si hacemos lo siguiente:

#> useradd juan

Se creará el usuario y su grupo, asi como las entradas correspondientes en /etc/passwd, /etc/shadow y /etc/group. También se creará el directorio de inicio o de trabajo: /home/juan y los archivos de configuración que van dentro de este directorio y que más adelante se detallan.

Las fechas de expiración de contraseña, etc. Quedan lo más amplias posibles asi que no hay problema que la cuenta caduque, asi que prácticamente lo único que faltaría sería añadir la contraseña del usuario y algún comentario o identificación de la cuenta. Como añadir el password o contraseña se estudiara en un momento y viendo las opciones con '-c' es posible establecer el comentario, campo 5 de /etc/passwd:

#> useradd -c "Juan Perez Hernandez" juan

Siempre el nombre del usuario es el último parámetro del comando. Asi por ejemplo, si queremos salirnos del default, podemos establecer algo como lo siguiente:

#> useradd -d /usr/juan -s /bin/csh -u 800 -c "Juan Perez Hernandez" juan

Con lo anterior estamos cambiando su directorio de inicio, su shell por defautl sera csh y su UID será el 800 en vez de que el sistema tome el siguiente número disponible.


Modificar usuarios con usermod

Como su nombre lo indica, usermod permite modificar o actualizar un usuario o cuenta ya existente. Sus opciones más comunes o importantes son las siguientes:

  • -c añade o modifica el comentario, campo 5 de /etc/passwd
  • -d modifica el directorio de trabajo o home del usuario, campo 6 de /etc/passwd
  • -e cambia o establece la fecha de expiración de la cuenta, formato AAAA-MM-DD, campo 8 de /etc/shadow
  • -g cambia el número de grupo principal del usuario (GID), campo 4 de /etc/passwd
  • -G establece otros grupos a los que puede pertenecer el usuario, separados por comas.
  • -l cambia el login o nombre del usuario, campo 1 de /etc/passwd y de /etc/shadow
  • -L bloque la cuenta del usuario, no permitiendolé que ingrese al sistema. No borra ni cambia nada del usuario, solo lo deshabilita.
  • -s cambia el shell por defecto del usuario cuando ingrese al sistema.
  • -u cambia el UID del usuario.
  • -U desbloquea una cuenta previamente bloqueada con la opción -L.

Si quiseramos cambiar el nombre de usuario de 'sergio' a 'sego':

#> usermod -l sego sergio

Casi seguro también cambiará el nombre del directorio de inicio o HOME en /home, pero si no fuera así, entonces:

#> usermod -d /home/sego sego

Otros cambios o modificaciones en la misma cuenta:

#> usermod -c "supervisor de area" -s /bin/ksh -g 505 sego

Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora sera Korn shell y su grupo principal de usuario quedó establecido al GID 505 y todo esto se aplicó al usuario 'sego' que como se observa debe ser el último argumento del comando.

El usuario 'sego' salió de vacaciones y nos aseguramos de que nadie use su cuenta:

#> usermod -L sego

Eliminar usuarios con userdel

Como su nombre lo indica, userdel elimina una cuenta del sistema, userdel puede ser invocado de tres maneras:

#> userdel sergio

Sin opciones elimina la cuenta del usuario de /etc/passwd y de /etc/shadow, pero no elimina su directorio de trabajo ni archivos contenidos en el mismo, esta es la mejor opción, ya que elimina la cuenta pero no la información de la misma.

#> userdel -r sergio

Al igual que lo anterior elimina la cuenta totalmente, pero con la opción -r además elimina su directorio de trabajo y archivos y directorios contenidos en el mismo, asi como su buzón de correo, si es que estuvieran configuradas las opciones de correo. La cuenta no se podrá eliminar si el usuario esta logueado o en el sistema al momento de ejecutar el comando.

#> userdel -f sergio

La opción -f es igual que la opción -r, elimina todo lo del usuario, cuenta, directorios y archivos del usuario, pero además lo hace sin importar si el usuario esta actualmente en el sistema trabajando. Es una opción muy radical, además de que podría causar inestabilidad en el sistema, asi que hay que usarla solo en casos muy extremos.


Cambiar contraseñas con passwd

Crear al usuario con useradd es el primer paso, el segundo es asignarle una contraseña a ese usuario. Esto se logra con el comando passwd que permitirá ingresar la contraseña y su verificación:

#> passwd sergio
Changing password for user prueba.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
#>

El usuario root es el único que puede indicar el cambio o asignación de contraseñas de cualquier usuario. Usuarios normales pueden cambiar su contraeña en cualquier momento con tan solo invocar passwd sin argumentos, y podrá de esta manera cambiar la contraseña cuantas veces lo requiera.

passwd tiene integrado validación de contraseñas comunes, cortas, de diccionario, etc. asi que si por ejemplo intento como usuario normal cambiar mi contraseña a 'qwerty' el sistema me mostrará lo siguiente:

$> passwd
Changing password for user prueba.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
$>

Nótese que al ingresar 'qwerty' como contraseña se detectó que es una secuencia ya conocida como contraseña y me manda la advertencia: "BAD PASSWORD: it is based on a dictionary word", sin embargo me permite continuar, al ingresar la verificación. Es decir, passwd avisa de malas o débiles contraseñas pero permite establecerlas si realmente se desea.

Resumiendo entonces, se podría decir que todo este tutorial se reduce a dos líneas de comandos para crear y dejar listo para trabajar a un usuario en Linux:

#> useradd ana
#> passwd ana

Se crea el usuario 'ana', useradd hace todo el trabajo de establecer el shell, directorio de inicio, copiar archivos iniciales de configuración de la cuenta, etc. y después passwd establece la contraseña. Asi de simple.

passwd tiene varias opciones que permiten bloquear la cuenta '-l', desbloquearla '-u', y varias opciones más que controlan la vigencia de la contraseña, es decir, es otro modo de establecer los valores de la cuenta en /etc/shadow. Para más información consulta las páginas del manual:

$> man passwd

Archivos de configuración

Los usuarios normales y root en sus directorios de inicio tienen varios archivos que comienzan con "." es decir están ocultos. Varían mucho dependiendo de la distribución de Linux que se tenga, pero seguramente se encontrarán los siguientes o similares:

#> ls -la
drwx------ 2 ana ana 4096 jul 9 09:54 .
drwxr-xr-x 7 root root 4096 jul 9 09:54 ..
-rw-r--r-- 1 ana ana 24 jul 9 09:54 .bash_logout
-rw-r--r-- 1 ana ana 191 jul 9 09:54 .bash_profile
-rw-r--r-- 1 ana ana 124 jul 9 09:54 .bashrc

.bash_profile aquí podremos indicar alias, variables, configuración del entorno, etc. que deseamos iniciar al principio de la sesión.

.bash_logout aquí podremos indicar acciones, programas, scripts, etc., que deseemos ejecutar al salirnos de la sesión.

.bashrc es igual que .bash_profile, se ejecuta al principio de la sesión, tradicionalmente en este archivo se indican los programas o scripts a ejecutar, a diferencia de .bash_profile que configura el entorno.

Lo anterior aplica para terminales de texto 100%.

Si deseamos configurar archivos de inicio o de salida de la sesión gráfica entonces, en este caso, hay que buscar en el menú del ambiente gráfico algún programa gráfico que permita manipular que programas se deben arrancar al iniciar la sesión en modo gráfico. En la mayoría de las distribuciones existe un programa llamado "sesiones" o "sessions", generalmente esta ubicado dentro del menú de preferencias. En este programa es posible establecer programas o scripts que arranquen junto con el ambiente gráfico, sería equivalente a manipular 'bashrc'.

Además Linux permite que el usuario decida que tipo de entorno Xwindow a utilizar, ya sea algún entorno de escritorio como KDE o Gnome o algún manejador de ventanas como Xfce o Twm. Dentro del Home del usuario, se creará un directorio o archivo escondido "." , por ejemplo '.gnome' o '.kde' donde vendrá la configuración personalizada del usuario para ese entorno. Dentro de este directorio suele haber varios directorios y archivos de configuración. Estos son sumamente variados dependiendo de la distribución y del entorno. No es recomendable modificar manualmente (aunque es perfectamente posible) estos archivos, es mucho mas sencillo modificar vía las interfases gráficas que permiten cambiar el fondo, protector de pantalla, estilos de ventanas, tamaños de letras, etc.

Resumen de comandos y archivos de administración de usuarios

Existen varios comandos más que se usan muy poco en la administración de usuarios, que sin embargo permiten administrar aun más a detalle a tus usuarios de Linux. Algunos de estos comandos permiten hacer lo mismo que los comandos previamente vistos, solo que de otra manera, y otros como 'chpasswd' y 'newusers' resultan muy útiles y prácticos cuando de dar de alta a múltiples usuarios se trata.

A continuación te presento un resumen de los comandos y archivos vistos en este tutorial más otros que un poco de investigación

Comandos de administración y control de usuarios
adduserVer useradd
chagePermite cambiar o establecer parámetros de las fechas de control de la contraseña.
chpasswdActualiza o establece contraseñas en modo batch, múltiples usuarios a la vez. (se usa junto con newusers)
idMuestra la identidad del usuario (UID) y los grupos a los que pertence.
gpasswdAdministra las contraseñas de grupos (/etc/group y /etc/gshadow).
groupaddAñade grupos al sistema (/etc/group).
groupdelElimina grupos del sistema.
groupmodModifica grupos del sistema.
groupsMuestra los grupos a los que pertence el usuario.
newusersActualiza o crea usuarios en modo batch, múltiples usuarios a la vez. (se usa junto chpasswd)
pwconvEstablece la protección shadow (/etc/shadow) al archivo /etc/passwd.
pwunconvElimina la protección shadow (/etc/shadow) al archivo /etc/passwd.
useraddAñade usuarios al sistema (/etc/passwd).
userdelElimina usuarios del sistema.
usermodModifica usuarios.

Archivos de administración y control de usuarios
.bash_logoutSe ejecuta cuando el usuario abandona la sesión.
.bash_profileSe ejecuta cuando el usuario inicia la sesión.
.bashrcSe ejecuta cuando el usuario inicia la sesión.
/etc/groupUsuarios y sus grupos.
/etc/gshadowContraseñas encriptadas de los grupos.
/etc/login.defsVariables que controlan los aspectos de la creación de usuarios.
/etc/passwdUsuarios del sistema.
/etc/shadowContraseñas encriptadas y control de fechas de usuarios del sistema.

Ambientes gráficos y Web

Si usas Linux con Xwindow (gnome, kde, etc.) encontrarás dentro de los menús una o varias opciones gráficas de administración de usuarios, asi como programas basados en Web como webmin que entre muchas otras cosas te permiten un control total de la administración de usuarios y grupos. Estos programas de gestión de usuarios son sumamente intuitivos y en una sola pantalla a través de sus opciones puedes controlar prácticamente todas las funciones expuestas en este tutorial, en lo particular recomiendo webmin por su confiablidad y alto nivel de configuración, además que es accesible via web.


Usuarios y grupos en Fedora

Programa de control de usuarios, disponible en Fedora a través del menú Escritorio -> Administración -> Usuarios y grupos, o desde una terminal de comandos o shell con el comando system-config-users, debes de ser root en cualquier caso.


Usuarios y grupos en Fedora Webmin en el módulo de añadir usuarios. Excelente herramienta de configuración y administración de múltiples aspectos de Linux.

Autor: Sergio.gonzales.duran@gmail.com
Linuxtotal.com.mx

miércoles, 21 de enero de 2009

Red Hat Enterprise Linux 5.3, publicado

El proveedor de servicios y productos estadounidense ha anunciado la disponibilidad de la versión 5.3 de su distribución comercial Linux enfocada al mercado empresarial, que llega con 150 mejoras algunas presentes ya en la última versión de la distribución GNU/Linux, Fedora, que patrocina la compañía.

Entre los aspectos más relevantes destacan la capacidad de virtualización mejorada con soporte para servidores virtuales de hasta 32 CPUs y 80 Gbytes de memoria; aumento en la escalabilidad y plataforma de hardware soportando servidores físicos de hasta 126 CPUs y 1 TB de memoria y soporte para procesadores Nehalem, con hyperthreading y mejoras en la administración de energía y que multiplican el rendimiento en procesos en paralelo de superordenadores de hasta tres veces respecto a la anterior generación de procesadores de Intel, según la compañía.


fuente: inquirer

martes, 20 de enero de 2009

Comprimir y descomprimir

En Linux hay diversas herramientas para empaquetar y comprimir archivos, tomando en cuenta que empaquetar es juntar dos o más archivos en un solo archivo (paquete) y comprimir es tomar este archivo-paquete y comprimirlo a continuación te muestro un resumen de las más comunes, de acuerdo a la extensión que comunmente se acostumbra ponerles.

.tar (tar)
Empaquetartar cvf archivo.tar /archivo/mayo/*
Desempaquetartar xvf archivo.tar
Ver el contenido (sin extraer)tar tvf archivo.tar
.tar.gz - .tar.z - .tgz (tar con gzip)
Empaquetar y comprimirtar czvf archivo.tar.gz /archivo/mayo/*
Desempaquetar y descomprimirtar xzvf archivo.tar.gz
Ver el contenido (sin extraer)tar tzvf archivo.tar.gz
.gz (gzip)
Comprimirgzip -q archivo
(El archivo lo comprime y lo renombra como "archivo.gz")
Descomprimirgzip -d archivo.gz
(El archivo lo descomprime y lo deja como "archivo"
Nota: gzip solo comprime archivos, no directorios
.bz2 (bzip2)
Comprimirbzip2 archivo
bunzip2 archivo
(El archivo lo comprime y lo renombra como "archivo.bz2")
Descomprimirbzip2 -d archivo.bz2
bunzip2 archivo.bz2
(El archivo lo descomprime y lo deja como "archivo")
Nota: bzip2 solo comprime archivos, no directorios
.tar.bz2 (tar con bzip2)
Comprimirtar -c archivos | bzip2 > archivo.tar.bz2
Descomprimirbzip2 -dc archivo.tar.bz2 | tar -xv
tar jvxf archivo.tar.bz2 (versiones recientes de tar)
Ver contenidobzip2 -dc archivo.tar.bz2 | tar -tv
.zip (zip)
Comprimirzip archivo.zip /mayo/archivos
Descomprimirunzip archivo.zip
Ver contenidounzip -v archivo.zip
.lha (lha)
Comprimirlha archivo.lha /mayo/archivos
Descomprimirlha -x archivo.lha
Ver contenidolha -v archivo.lha
lha -l archivo.lha
.zoo (zoo)
Comprimirzoo -a archivo.zoo /mayo/archivos
Descomprimirzoo -x archivo.zoo
Ver contenidozoo -v archivo.zoo
zoo -L archivo.zoo
.rar (rar)
Comprimirrar -a archivo.rar /mayo/archivos
Descomprimirrar -x archivo.rar
Ver contenidorar -v archivo.rar
rar -l archivo.rar

Fuente: Linux Total

sábado, 17 de enero de 2009

Linux como router para Natear y forwardind de puertos, Firewall, DNS y DHCP server


Lo que les voy a dejar ahora es un link para los que quieran armar un servidor completo con Ubuntu Server, básico pero muy util y economico. Si tenemos alguna PC viejas, aquellas primeras Pentium I y II esto les va a ir muy bien, cualquier duda me dejan un comentario.

El tuto consiste en armar primero una gateway para Natear, es decir, un routercito con iptables para firewall, despues un DHCP server y un servidorcito de DNS.

Link al tutorial

viernes, 16 de enero de 2009

jueves, 15 de enero de 2009

Realizar un backup de nuestra base de datos MYSQL

Esto es simple, crearemos un script para backupear nuestra base de datos.
Primero creamos un directorio donde vamos a poner nuestro backup

# mkdir /home/mysqlbkp

Ahora creamos nuestro script bkp_mysql.sh con nuestro editor favorito con lo siguiente:
#!/bin/bash

### BACKUP para mysql ###

mysqldump -uroot -ppwd --opt prueba > /home/mysql_bkp/dbbkp.sql
cd /home/mysql_bkp
tar -czvf mysql_bkp_$(date +%d%m%y).tgz *.sql
find -name '*.tgz' -type f -mtime +2 -exec rm -f {} \;

Analizamos
  • -u es para indicar el usuario en este caso es root pero puede ser cualquier otro usuario que tenga privilegios sobre la base de datos
  • -p es para indicarle el password aquí tienes que colocar el password del usuario que estás utilizando para conectarte en la base de datos.
  • –opt aquí indicamos cual es base de datos que queremos que copie en este caso prueba
  • el operador > redirecciona la salida del comando hacia un archivo llamado dbbkp.sql en una carpeta llamada respaldosql.

Listo, ahora le damos permisos de ejecucion:
# chmod +x bkp_mysql.sh

Listo ahora lo podemos ejecutar, y ya esta. Les dejo un link para que vean como se agregar este tipo de tareas a CRON.

http://linuxsix.blogspot.com/2008/12/crontab-tareas-programadas.html


Y para recuperar la base de datos, como se hace? bueno asi

# mysql prueba < dbbkp.sql -u root -p

prueba es el nombre de la base de datos
dbbkp.sql es el backup

martes, 13 de enero de 2009

Replicar bases de datos Mysql en servidores locales o remotos

Mysql permite replicar bases de datos, dentro de un mismo servidor mysql (en la misma máquina), o entre B.D. localizadas en diferentes servidores en red local o remota. Para poder conseguir replicar uno de los servidores (Servidor M) tiene que ser el maestro y el otro servidor el esclavo (Servidor E).

  • Servidor M (Servidor principal, sería el maestro)
  • Servidor E (Servidor secundario, sería el servidor esclavo).

Cuando indiquemos en el manual Mysql> es porque tenemos que introducir los comandos dentro de la consola de Mysql.

Para entrar en la consola introducir el comando : mysql -u root -p

Ejemplo del comando en un servidor linux :

# /usr/local/mysql/bin/mysql -u root -p (Puede ser diferente la ruta en tu PC)

En ese momento el servidor mysql pide el password de root , lo introducimos y se accede a la consola.

La replicación de Base de Datos en mysql tiene varias características a considerar y son:

  • Podemos replicar Bases de Datos en el mismo servidor (Diferentes servicios MySql), en Servidores diferentes en LAN (Red Local) o WAN (Servidores Remotos).
  • Se puede configurar (etc/my.cnf), la replicación parcial o total de las tablas de la Base de Datos a replicar del Servidor Maestro al Servidor Esclavo/s.
  • La replicación es UNIDIRECCIONAL, los datos se copian de una base de datos a otra en un solo sentido, eso quiere decir que solo en una base de datos se deben actualizar los datos (sentencias INSERT, UPDATE, DELETE), que es la base de datos maestra, y la base de datos esclava nunca debe recibir sentencias de actualización de las tablas que se replican, solo consultas (SELECT).
  • De las tablas de la Base de Datos que no se replican, entre el Servidor Maestro y el Esclavo, se pueden realizar las sentencias (INSERT, UPDATE y DELETE), en la base de datos del Servidor Esclavo.
  • Podemos tener sendos servidores esclavos para cada maestro, pero no varios maestros para un esclavo.
  • La replicación copia exactamente todos los cambios que se van haciendo desde que se activa el sistema de replicación, es decir, antes de replicar hay que hacer un backup definitivo de la base de datos principal a la esclava, para que las 2 bases de datos tengan exactamente la misma información.
  • Cada servidor esclavo debe tener permiso para conectar con el maestro y solicitar las actualizaciones.
  • El servidor esclavo necesita una cuenta en el servidor maestro para que pueda conectarse. En el servidor maestro, configure una cuenta como ésta :
  • Mysql> GRANT REPLICATION SLAVE ON *.* TO ‘usuario_esclavo’@'host_esclavo’ IDENTIFIED BY ‘contraseña_esclavo’;
  • El servidor maestro crea un hilo de proceso para manejar cada esclavo. En el lado del servidor esclavo se crean 2 hilos para manejar las tareas de réplica. El primer hilo es de Entrada/Salida recibe los eventos para procesar del servidor maestro y los escribe en los registros de reenvío del esclavo. El segundo hilo el SQL lee los eventos de los registros de reenvío y los ejecuta.
  • Es aconsejable que las réplicas de las Bases de Datos MySql sean de la misma versión y si es posible de la 5.x y activos los mismos motores en las 2 B.D.

La actualización de la información de la Base de datos Mysql Master (total o parcial de sus tablas), automáticamente Mysql actualiza unos ficheros de datos “mysql-bin.XXXXXX”. Una vez actualizados estos ficheros se envía un evento al servidor con la base de datos Esclava y ésta se comunica con el Servidor Esclavo para recibir la porción del fichero de “mysql-bin.XXXXXX” que le falta; no todo el fichero sino la porción que le falta por tratar solamente (esto se sabe por posiciones tratadas dentro del fichero, nº linea).

CONFIGURACIÓN DEL SERVIDOR MAESTRO MYSQL

Debajo de la etiqueta [mysqld] del fichero /etc/my.cnf del maestro añadir las líneas de la B.D. (empresa):

  • log-bin=mysql-bin #Nombre de los ficheros transmitidos entre servidores
  • server-id = 1 #Id del servidor (Diferente nº que todos los esclavos)
  • replicate-do-db = empresa # Base de datos a replicar
  • replicate-ignore-table = empresa.tabla1 # Tabla1 a no replicar
  • replicate-ignore-table = empresa.tabla2 # Tabla2 a no replicar
  • binlog-do-db=empresa # Base de datos a crear logs únicamente

Y reiniciar luego el servicio MySql del Servidor Maestro. Con esto ya es suficiente.


CONFIGURACIÓN DEL SERVIDOR ESCLAVO MYSQL

1.- Definir variables globales para el servidor mysql

Debajo de la etiqueta [mysqld] del fichero /etc/my.cnf del esclavo añadir las líneas: de la B.D. (empresa)

  • server-id = 2 #Id del servidor (Diferente nº del maestro y los esclavos)
  • replicate-do-db = empresa # Base de datos a replicar
  • replicate-ignore-table = empresa.tabla1 # tabla1 a ignorar
  • replicate-ignore-table = empresa.tabla2 # tabla2 a ingnorar
  • binlog-do-db=empresa # Base de datos a crear logs únicamente

2.- Definir variables de replicación en el Servidor Esclavo:

Mysql>CHANGE MASTER TO;

  • MASTER_HOST=’192.168.5.130′ (ip master)
  • MASTER_PASSWORD=’xxxx’
  • MASTER_LOG_FILE = ‘obtenido en SHOW MASTER STATUS del master’
  • MASTER_LOG_POS = ‘obtenido en SHOW MASTER STATUS del master’

Al realizar este comando se crea un fichero llamado master.info que luego se puede editar para cambiar estos valores a mano. También se crea el fichero relay-log.info que muestra información de cual es el último archivo absorbido del master, ultima posición leída de este archivo, y log de esta última transferencia. Ejemplo:

/usr/local/mysql/data/relay-log.info

  • ./Servidor-relay-bin.000011 [ultimo LOG guardado en /usr/local/myql/data]
  • 406 [ ultima posición del LOG en /usr/local/mysql/data]
  • mysql-bin.000122 [ÚLTIMO FICHERO RECIBIDO DEL MASTER]
  • 269 [ÚLTIMA POSICIÓN TRATADA DEL MASTER]

Y reiniciar luego el servicio MySql del Servidor Esclavo. Con esto ya es suficiente.

3.- Arrancar el servicio Esclavo

El mandato para arrancar el Servicio del Esclavo (E) es :

Mysql>START SLAVE ;

El mandato para parar el Servicio del Esclavo (E) es :

Mysql>STOP SLAVE;

Estos comandos sirven para parar o arrancar la replicación en el esclavo, si se para no se replica. Se puede arrancar cuando uno quiera, seguirá por la última posición de replicación que tiene guardada (la última ok), es decir, no se perderían datos aunque el esclavo haya estado 2 horas o más parado, solo que tardará un poco más en absorber toda la información no replicada.

DONDE VER LOS ERRORES DE MYSQL

En caso de error al arrancar el servidor o pararlo, o bien posibles dudas sobre replicación, se pueden ver los logs de errores en:

  • /usr/local/mysql/data/Servidor-Master.err o
  • /usr/local/mysql/data/Servidor-Esclavo.err ,

Según la máquina


COMANDOS IMPORTANTES PARA VER Y CONTROLAR LA REPLICACIÓN

1.- Utilidades del Servidor Maestro

Estando dentro del servidor Maestro (M) :

Mysql>SHOW MASTER STATUS;

El master por cada cambio realizado en la Mysql principal (insert, update, delete) trabaja creando líneas de cambios en un fichero bin.

La sentencia SHOW MASTER STATUS : Indica el fichero .bin que está utilizando el master para guardar los cambios actualmente y por que posición va actualmente (línea dentro del fichero).

Ejemplo de resultado de SHOW MASTER STATUS/

  • File = mysql-bin.000122 [Fichero bin actual ]
  • Position = 269 [Última posición insertada]
  • BinLog_Do_DB = empresa [Base de datos que trata únicamente]
  • BinLog_Ignore_Db = “” [BD ignoradas, si BinLog_Do_Db <> "" el resto]

Estando dentro del servidor Maestro (M) :

Mysql> SHOW PROCESSLIST\G;

Muestra el estado del flujo del servidor que se encarga de enviar al esclavo los ficheros de “mensajes” actualizaciones en la base de datos del maestro.

*************************** 10. row ***************************

  • Id: 97
  • User: replica
  • Host: 192.168.5.130:48647
  • db: NULL
  • Command: Binlog Dump
  • Time: 1262
  • State: Has sent all binlog to slave; waiting for binlog to be updated
  • Info: NULL

2.- Utilidades del Servidor Esclavo

Estando dentro del servidor Esclavo (E) :

Mysql> SHOW SLAVE STATUS;

Slave_IO_State: Waiting for master to send event

  • Master_Host: 192.168.5.130 [Ip master]
  • Master_User: replica [Usuario master para conectarse]
  • Master_Port: 3306 [Puerto mysql]
  • Connect_Retry: 60 [60'' Timeout para conectar los 2 servers]
  • Master_Log_File: mysql-bin.000122 [Último Fichero master]
  • Read_Master_Log_Pos: 269 [Última posición en el fichero master]
  • Relay_Log_File: server-relay-bin.000011 [Último log en el esclavo]
  • Relay_Log_Pos: 406 [Última posición en el log del esclavo]
  • Relay_Master_Log_File: mysql-bin.000122 [Último fichero master]
  • Slave_IO_Running: Yes [Muy importante, debe ser yes]
  • Slave_SQL_Running: Yes [Muy importante, debe ser yes]
  • Replicate_Do_DB: empresa [B.D se replica únicamente]
  • Replicate_Ignore_DB:

Si los campos Slave_IO_Running : No y Slave_SQL_Running : No.

Por estar el servicio parado en el Servidor Esclavo (E), activar con el mandato :

Mysql> START SLAVE;

Estando aún dentro del Servidor Esclavo (E) :

Mysql> SHOW PROCESSLIST\G;

El comando enseña para el esclavo los 2 flujos que hay trabajando, en concreto siempre habrá 2, el primero que lee del servidor master (flujo entre máquinas), y el segundo, que coge los datos recibidos y actualiza la base de datos (flujo interno de actualización).

El master guarda los cambios en la base de datos en un fichero log, en ciertas posiciones. Cuando hace esto manda un evento al proceso del esclavo. El esclavo recibe el evento y se conecta con el flujo 1 al servidor para recibir el log, una vez recibido el flujo 2 mete la información nueva al mysql propio.

*************************** 1. row ***************************

  • Id: 1
  • User: system user
  • Host:
  • db: NULL
  • Command: Connect
  • Time: 2752 (tiempo desde la última lectura del master, en segundos)
  • State: Waiting for master to send event
  • Info: NULL

*************************** 2. row ***************************

  • Id: 2
  • User: system user
  • Host:
  • db: NULL
  • Command: Connect
  • Time: 12
  • State: Has read all relay log; waiting for the slave I/O thread to update it
  • Info: NULL

RESETEAR o PURGAR LOS LOG’S EN EN SERVIDOR MAESTRO

Para inicializa los contadores y borra todos los “mysql-bin” temporales, el mandato es :

Mysql> RESET MASTER;

Para expirar los registros binarios. Podemos utilizar dicha sentencia después de ejecutar la sentecia :

Mysql> PURGE MASTER;

En cada uno de los esclavos para determinar qué registros binarios ya no son necesarios.

Mysql> SHOW SLAVE STATUS;


Fuente: telepieza.com LINK

lunes, 12 de enero de 2009

Fedora 11 se llamara "Leonidas"


Tras la votación realizada la semana pasada utilizando Fedora Range Votting, se resolvió, finalmente, el nombre de la próxima release de Fedora: Leonidas.

Los resultados fueron:

1. Leonidas 1108
*****
2. Indomitable 1054
3. Claypool 944
4. Brasília 890
5. Blarney 890
6. Duchess 838
7. Zampone 716
8. Euryalus 713

De este modo, la distribucion de Fedora tomara el nombre del personaje de la pelicula "300".
Asi como Debian adopta nombre de personajes de la pelicula ToY Story.

sábado, 10 de enero de 2009

Pasar Linux a otro disco

Este tutorial es bien simple y para que vean que facil se puede copiar un linux de un disco a otro.
Imaginemos que tenemos un disco de 80 gigas y compramos uno de 160 Gigas, lo que vamos a hacer es copiar todo el linux de un disco al otro.

1. Lo primer es iniciar la pc con un live CD, esto es para trabajar.

2. Previo a montar los discos , hay que tener en cuenta, como esta particionado el disco de 80, es decir, si no tenemos mas que 2 particiones, una que es la raiz (/) y otra la SWAP, se debe particionar el disco de 160 de la misma manera, o al menos tenes una particion que sea la raiz (/) y otra la SWAP. En el caso de tener dudas con este punto dejen un comentario, pero la idea es clonar las particiones, no es necesario tener el mismo tamaño.

3. Una vez cargado, montamos el disco de 80 y el de 160
# mount /dev/sda /media/ochenta
# mount /dev/sdb /media/cientosesenta

4. Ahora realizamos la copia de los archivos
# cp -xa /media/ochenta/* /media/cientosesenta

En el supuesto caso de tener por ejemplo, /home en sda2 y / en sda1 , hay que montar /home y montar / en 2 directorios y copiarlos. Imaginense que ambos discos tienen que ser una fotocopia, y les repito que hay que tener la misma cantidad de particiones pero no el tamaño.

5. Luego lo que hay que modificar el archivo /etc/fstab y /etc/grub/menu.lst, si utilizan Ubuntu por ejemplo, el UID del disco, eso lo averiguan con:
# vol_id -u /dev/sdb

y lo reemplazan por los valores que averiguaron

6. Reinstalar GRUB , estos pasos son importantes ya que hay que reinstalar GRUB:
  1. Iniciamos la pc y arrancamos desde el Live CD de GNU/Linux
  2. Abrimos una terminal o consola y nos logeamos como root
  3. Creamos un directorio donde montar la partición de Linux que queremos recuperar
# mkdir /mnt/linux
# mount /dev/hda2 /mnt/linux (suponiendo que tenemos instalado linux en la segunda particion del disco hda)
# chroot /mnt/linux
# grub-install /dev/hda

Luego reiniciar la pc y ya tenemos nuevamente GRUB en el MBR


Tambien les dejo el links ya que esta informacion la saque de mi blog = )
http://linuxsix.blogspot.com/2008/11/recuperar-grub.html

Eso es todo, cualquier duda me preguntan = )

jueves, 8 de enero de 2009

Problema con Iceweasel o Firefox y Mega Upload

Resulta que el otro dia, necesitaba descargar un archivo que se encontraba hosteado en Megaupload, para los que no saben, MegaUpload da servicios de almacenamiento y archivos en linea, me tope con que no se me abria la ventana de dialogo para descargar el archivo, es decir, esperaba los 45 segundos aproximados y cuando ponia download no pasaba nada.

Entonces, que hice, presio el boton derecho del mouse y cliquie en "Copiar direccion del enlace", luego abri una consola y lo pegue mostrando algo como lo siguiente:

http://www685.megaupload.com:1723/files/05770d2255e2869c5c88199984797572/-archivo.pdf

Note que utiliza el puerto 1723 y lo que se me ocurrio fue quitarlo a ver si pasaba algo y ademas poner un wget para descargarlo, quedando asi:

$ wget http://www685.megaupload.com:/files/05770d2255e2869c5c88199984797572/-archivo.pdf

Y alli pude comenzar la descarga. Ahora mi pregunta es porque con el puerto 1723 no lo descarga, puede ser por varios motivos, puede ser el firewall del router, aunque no esta activado, o que el proveedor tenga cerrado el puerto. Por lo tanto mas adelante les voy a dar la novedad, pero me gustaria a quien quiera colaborar con alguna informacion es bienvenida.

miércoles, 7 de enero de 2009

Centerim, mensajeria instantanea en consola


Centerim es un cliente multi-protocolo de mensajería instantánea en modo consola. Lo probe hace poco y verdaderamente anda muy bien, es para probarlo, por eso les paso el link de la pagina del software.

http://www.centerim.org/index.php/Main_Page

A los Usuario de Ubuntu un apt-get install centerim les cae barbaro.

Ahora para usarlo, se corre el programa en consola y a la primera pantalla de configuracion no es necesario tocar nada, luego saltamos a la de las cuentas y alli ponemos nuestra cuenta de msn por ejemplo.

Luego prestan atencion a las indicaciones de abajo que nos dice como operarlo, es muy simple y claro.

martes, 6 de enero de 2009

Internet finaliza 2008 con 186,7 millones de sitios web

Aunque el número de páginas web sigue en ascenso, su crecimiento se ha ralentizado considerablemente el último año, según las estadísticas publicadas por Netcraft.

El número de sitios web se incrementó un 17% en 2008, o lo que es lo mismo, 31,1 millones de páginas más. Enorme crecimiento que sin embargo está lejos del 42 y 46 % de aumento conseguido en 2006 y 2007 respectivamente.

El servidor web de código abierto Apache es el más popular de la red y es usado por el 51,24% de todos los sitios web. Una cifra mantenida este año después de la caída de cuota en 2007. El servidor web de Microsoft, “Internet Information Server”, contaría con el 31,24% de cuota y Google GFE rondaría el 5,6%.

fuente: inquirer

lunes, 5 de enero de 2009

DownThemAll! Gestor de descargas en Firefox

Algo que muchos reclaman los usuarios de Firefox es que se permitan pausar / resumir las descargas entre sesiones. DownThemAll nos permite eso y mucho mas. Se trata de una extensión que aporta un gestor de descargas totalmente funcional a nuestro navegador, permitiéndonos además la descarga de una página entera de una sola vez.

Una vez instalada podemos acceder a ella a través del menú ‘Herramientas‘ - ‘DownThemAll‘, donde encontraremos las siguientes opciones:


Para ponerlo en funcionamiento, basta abrir la página de donde queremos bajar los enlaces y damos clic en ‘DownThemAll!...’. Aparecerá el siguiente diálogo:

Por un lado tendremos listados los enlaces de la página y por otro los objetos e imágenes insertadas o incrustadas. Desde esta ventana podremos bajar de una sola vez todos los enlaces que marquemos previamente. Seleccionas los archivos, clic en ‘Iniciar‘ y listo. Ideal para bajar una cantidad de ví­nculos a la vez. También tenemos la opción de filtrar según los tipos de archivos, como se muestra en la imagen.

Otra opción es dando clic en ‘dTaOneClick!‘ Es similar a la anterior pero aplicando automáticamente los últimos filtros realizados. En este caso no es necesario seleccionar previamente lo que queremos descargar.

Una vez que empezamos a descargar, podemos seguir el estado de las descargas desde el Administrador de dTa! El diálogo es similar a los gestores de descargas más comunes:

Desde el cual podemos agregar una dirección para descargar, pausar y resumir las descargas o cancelarlas.

Como buena extensión, DownThemAll tiene sus opciones de configuración, entre las que se destacan principalmente las posibilidades de definir filtros utilizando expresiones regulares o caracteres especiales, para utilizar en las descargas:

También podemos especificar el número máximo de descargas simultáneas, el número máximo de partes por archivo o la carpeta temporal para las descargas incompletas, las cuales se podrán reanudar sin problemas una vez reiniciado el navegador.

La velocidad de descarga es mayor que las descargas normales de Firefox, especialmente en los casos de descargas de archivos de tamaño considerable como imágenes ISO o videos:

sábado, 3 de enero de 2009

Squid - Limitar ancho de banda

Proteger el ancho de banda

Cada usuario tiene tendencia a utilizar el 100% del ancho de banda disponible, no sé si esto es una ley escrita, si no debería estarlo.

Pues ahora que tenemos instalada la red y el acceso mediante proxy cache vamos a intentar regular el consumo de ancho de banda. Resulta interesante que nadie pueda cometer abusos y consumir todos los recursos de la red a costa del resto de usuarios. La regulación del ancho de banda se puede llevar a cabo utilizando distintos criterios: la máquina origen, la dirección o página destino o el tipo de transferencia.

Por un lado podemos intentar discriminar el origen de los datos, resumiendo que los jefe dispongan de mejor conexión. Resumiendo, vamos a asignar distintos anchos de banda a distintos rangos de direcciones IP.

También se nos puede dar el caso de que haya consultas masivas a unos determinados dominios o páginas y puede ser práctico delimitar el ancho de banda asignado a ese dominio.

En general el volumen de tráfico que genera el acceso a páginas web en html es bastante bajo, lo que realmente consume un volumen apreciable del ancho de banda son ficheros de sonido e imagen y una medida posible podría ser limitar de alguna forma la transferencia de estos tipos de ficheros.

Otra posibilidad sería que limitar el ancho de banda sólo para descargas de ficheros grandes y dejar un mayor ancho de banda a ficheros pequeños para que la navegación por páginas html sea más rápida.

Mediante Squid podemos establecer límites al ancho de banda mediante una de sus características de configuración denominada "delay pools". Establecemos una definición de regulación de ancho de banda, establecemos una ACL y asociamos la regulación a la ACL.


Parámetros de configuración


Cada una de las reglas de regulación está definida por un número entero que vamos a utilizar para indentificarlo en los distintos parámetros.

delay_pools
Esta parámetro se utiliza para definir cuantas reglas de regulación vamos a definir.

delay_class
Este parámetro toma dos argumentos el primero el identificador de la regla y en segundo lugar el tipo (clase) de la regla.

El primero argumento es un número entero para identificar la regla.

El segundo argumento puede ser 1,2 ó 3 para indicar uno de estos tipos de reglas.

delay_parameters
Establece los valores de la regla. Los argumentos de este parámetro son parejas de valores velocidad/tamaño, donde velociad es un número entero que indica una velocidad en bytes por segundo (B/s), y tamaño indica el número de bytes de reserva que se transmiten antes de aplicar la velocidad de transferencia.

Es decir cada pareja especifica el número de bytes de margen que se permiten antes de se haga efectiva la restricción de velocidad.

Los valores no tienen por qué ser múltiplos de 2.

Tipos de reglas
Hay tres clases de regulaciones, con características diferentes.

Clase 1
La clase uno consiste en un canal individual compartido por todos los usuarios. Es la clase más simple, todas las tasas de descarga van juntas y lo único que tenemos que especificar es la velocidad, en bytes por segundo, y el número de bytes a partir de los cuales tiene que retardar la descarga.

Ejemplo: Supongamos que queremos que la velocidad de descarga de los ficheros .wmv que ocupen más de 1Mb sea de 8k/s.

delay_pools 1
delay_class 1 1
delay_parameters 1 8192/1048576
acl ficheros_wmv url_regex \.wmv$
delay_access 1 allow ficheros_wmv


Cuando en esa red, algún equipo haya bajado más de 1Mb correspondiente a ficheros .wmv entonces la descarga total de ficheros .wmv se hará a una velocidad de 8k/s. Si quisiéramos establecer este límite para los hosts de una red deberíamos elegir la clase 2.

En el anterior ejemplo hemos supuesto que hay un único canal de regulación en el parámetro delay_pools. Ahora vamos a ver un ejemplo con dos canales de clase 1. Queremos que el tráfico de la red local no tenga límite de transferencia, mientras que para las conexiones a internet vamos a utilizar un total de 256Kbits/s.

delay_pools 2
delay_class 1 1
delay_parameters 1 -1/-1
acl red_local src 192.168.0.0/24
delay_access 1 allow red_local

delay_class 2 1
delay_parameters 2 32768/1024
acl resto all src 0.0.0.0/0.0.0.0
delay_access 2 allow resto


La tasa de transferencia viene especificada en bytes por segundo, por ejemplo convirtiendo a otras unidades uno de los parámetros de delay_parameters:

32768 B/s = 32 KB/s = 32 x 8 Kb/s (bits) = 256 Kb/s = 256 Kbits/s

El valor 1024 es un número de bytes lo suficientemente pequeño para que se alcance pronto y se estabilice el ancho de banda.

El valor -1 indica ilimitado.

Las regulaciones de clase 1 están diseñadas para evitar que la acl correspondiente consuma todo el ancho de banda, es decir definen la suma máxima de los anchos de banda de todos los clientes, pero no evita que un cliente pueda consumir ese ancho de banda a costa de otro; todos los clientes comparten un máximo ancho de banda.


Clase 2
La clase dos que consiste en un canal común con 256 canales individuales. Es decir tenemos un canal global y dentro de él otros 256 canales que se aplican a las máquinas de una red de clase C.

Ahora vamos a ver otro ejemplo con dos canales, en este caso ambos de de clase 2. Ahora también que el tráfico de la red local no tenga límite de transferencia, ni global ni por IP, mientras que para las conexiones a internet vamos a utilizar un total de 256Kbits/s y a cada máquina de la red le asigna un máximo de 64kbits/s.

delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
acl red_local src 192.168.0.0/24
delay_access 1 allow red_local

delay_class 2 2
delay_parameters 2 32768/1024 8192/1024
acl resto all src 0.0.0.0/0.0.0.0
delay_access 2 allow resto


Este ejemplo es muy parecido al anterior de clase 1, sólo tenemos que agregarle una pareja de valores al parámetro "delay_parameters". La primera pareja de este parámetro especifica el ancho de banda global, mientras que la segunda pareja especifica el ancho de banda por host.

Hay que tener en cuenta que los clientes están limitados por el tamaño del canal más pequeño, por lo que no tiene sentido que el canal común tenga un tamaño menor que los canales individuales.


Clase 3
La clase tres que define un canal común que contiene 256 canales de red, 65536 canales individuales. Muy parecida a la clase dos pero par redes de clase B.

Ejemplos de control de ancho de banda

Limitación global del ancho de banda
Tenemos una conexión con internet de 4Mbits y queremos que el ancho de banda dedicado a consulta de páginas web desede las IP comprendidas entre 192.168.5.100 hasta 192.168.5.199 sea de 1Mbits máximo.
1Mb/s = 128kB/s = 131072 B/s
4Mb/s = 512kB/s = 524288 B/s


delay_pools 1
delay_class 1 1
delay_parameters 1 131072/8192
acl lista src 192.168.5.100-192.168.5.199/32
delay_access 1 allow lista


Limitación de ancho de banda por red y host
Tenemos una conexión con internet de 4Mbits y queremos que el ancho de banda dedicado a consulta de páginas web desede las IP comprendidas entre 192.168.5.100 hasta 192.168.5.199 sea de 1Mbits máximo, de forma que cada una de las máquinas no pueda consumir más de 512Kbits/s.

Es como el ejemplo anterior, pero añadiendo restricciones adicionales a cada una de las máquinas, por lo que tendremos que elegir la clase 2:

delay_pools 1
delay_class 1 2
delay_parameters 1 131072/8192 65536/8192
acl lista src 192.168.5.100-192.168.5.199/32
delay_access 1 allow lista


Limitación de ancho de banda por servidor
Queremos limitar el ancho de banda a 4KB/s y que cada máquina consuma a lo sumo 2KB/s para todas las conexiones que se hagan a los servidores de banner cuyo nombre empieza por ad.

delay_pools 1
delay_class 1 2
delay_parameters 1 4096/4096 2048/2048
acl publicidad url_regex http://ad.*
delay_access 1 allow publicidad


Ancho de banda ilimitado para la red local.
Garantizar un ancho de banda ilimitado para los accesos a la red local.

delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
acl redlocal url_regex -i 192.168
delay_access 1 allow redlocal


Establecer privilegios de acceso.

Establecer privilegios en la red.

delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1
delay_parameters 1 -1/-1
delay_parameters 2 131072/8192
delay_parameters 3 65536/8192
acl jefes src 192.168.5.1-192.168.5.50/32
acl subjefes src 192.168.5.51-192.168.5.99/32
acl resto src 0/0
delay_access 1 allow jefes
delay_access 2 allow subjefes
delay_access 3 allow resto


Establecer ancho de banda en franja horaria.
acl todos src 0/0
acl laboral time 08:30-16:30
delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow todos
delay_class 2 2
delay_parameters 2 131072/8192 65536/8192
delay_access 2 allow laboral
delay_access 2 deny !laboral
delay_access 2 allow todos



Configuración de los navagadores clientes
Esta configuración exige que cada navegador esté configurado para utilizar el proxy. Pero claro, por una lado es un engorro tener que configurar uno a uno todos los equipos de la red y por otro, tenemos la posibilidad de que la configuración TCP/IP le da salida a través de una pasarela.

Si a pesar de todo queremos esta configuración, tendremos que decirle al navegador que utilice como proxy el equipo que alberga Squid y el puerto el 3128. El puerto se puede cambiar en el fichero de configuración. Otro puerto que se suele usar para proxy es el 8080, pero ¿para qué cambiarlo?

Proxy Transparente
Como queremos evitar tener que configurar los navegadores cliente y queremos evitar posibles puertas traseras de salida vamos a configurar un proxy transparente.

¿Qué es un proxy transparente? Es un proxy que no necesita ninguna configuración especial en los clientes. Se denomina transparente porque el cliente en realidad no sabe que lo está usando, es transparente para él.

Cómo configurar el proxy transparente, pues en primer lugar tenemos que configurar el cortafuegos para que reenvíe todas las peticiones que se hagan a un puerto 80 hacia el puerto 3128 que utiliza Squid. Es decir, capturamos todas las peticiones que se hagan a un servidor http y se las enviamos a Squid para que él se encarge del resto.

Estas son las reglas de iptables. La primera para redrigir las peticiones al proxy la siguiente para rechazar el resto de los reenvíos.

Si queremos que las páginas web pasen por el proxy con squid que está en 192.168.5.254, pero el resto siga con acceso normal, pondríamos:

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.5.254:3128

Si el equipo con squid está en la misma pasarela entonces podemos poner:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Cuidado, de las opciones anteriores sólo debemos escoger una de ellas.

Si sólo queremos salida para visitar págias web, entonces pondremos:

Primero garantizamos el tráfico DNS:

iptables -A FORWARD -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -m udp --sport 53 -j ACCEPT

jueves, 1 de enero de 2009

FELIZ AÑO NUEVO!!!

Gracias a todos los lectores del blog, les deseo un muy feliz 2009 !!!