15 de noviembre de 2010

Acceder a equipos con IP públicas dinámicas usando DNS Dinámico


NOTA: En México, sólo el ISP Telmex (que yo sepa) ofrece direcciones IP públicas dinámicas a sus usuarios por default. Los demás ISP, en su mayoría cableras (Megacable, Cablevisión, etc), proporcionan por default direcciones IPs privadas no pudiéndose hacer lo que a continuación se explica.

En ocasiones necesitamos acceder desde Internet a nuestro equipo en casa. Aunque podemos hacerlo usando la dirección IP pública que nos brinda nuestro ISP, ésta al ser dinámica puede cambiar en cualquier momento dejándonos incomunicados. Hay una solución a esto y se llama DNS Dinámico.

DynDNS.com permite asociar una dirección IP dinámica a uno o varios subdominios de una gran lista de nombres de dominios disponibles, entre ellos dyndns.org. Pudiendo acceder desde Internet a nuestro servidor casero usando el subdominio minombre.dyndns.org. Para ello, se requiere instalar un cliente DynDNS en nuestro servidor que se encargue de informar y actualizar la configuración en DynDNS.com cuando la IP pública cambie.

Primeramente hay que registrarse en DynDNS.com. Una vez registrado, recibiremos un correo de confirmación, nos logueamos y dirigimos a "My Account", luego en "My services", en "Host Services" se elige "Add Hostname" y se sigue el asistente.

Después hay que configurar el router de Telmex redirigiendo los puertos o servicios deseados a nuestro servidor. Esto se hace desde la "Configuración del bloqueo de intrusos", se elige el equipo al que se desea redirigir el puerto y se agrega el servicio deseado (Web, SSH, etc). Si no viene el servicio en la lista, se puede agregar uno personalizado dando clic en "Agregar una nueva aplicación definida por el usuario".

Luego, en nuestro servidor, hay que instalar ddclient que es un cliente de DynDNS:
# aptitude install ddclient

Durante la instalación nos preguntará el proveedor del Servicio DNS Dinámico, eligiendo www.dyndns.com, colocando el usuario y la contraseña de DynDNS. Luego se responde que Si a la pregunta sobre si deseamos que se obtenga la dirección IP mediante checkip.dyndns.com. Luego se elige la opción De una lista como el Métodos de selección para nombres actualizados.

Si durante el proceso marca algún error producto de algún error en contraseña o usuario de DynDNS, puede ejecutarse el siguiente comando para reconfigurar ddclient.
# dpkg-reconfigure ddclient

También puede configurarse manualmente mediante el archivo /etc/ddclient.conf:
protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=members.dyndns.org
login=usuariodeDynDNS
password='passwd'


Si se modifica manualmente hay que reiniciar el servicio Web y el servicio ddclient:
/etc/init.d/apache2
/etc/init.d/ddclient


El archivo /etc/default/ddclient también tiene opciones de configuración:
run_ipup="false"
run_daemon="true"
daemon_interval="1800"


Otra opción de DNS Dinámico es usar No-IP.com y el cliente noip2 que está en los repositorios de debian.

14 de noviembre de 2010

Usar Gmail para enviar correos mediante exim


En el siguiente articulo se explicará como usar una cuenta de correo de Gmail en un servidor para enviar correos al exterior (cualquier dirección de correo) y a los usuarios del sistema. La ventaja es que no se requiere comprar un dominio ni configurar el servicio de correo como MTA. Para ello se usará exim4.

Primeramente, se instala exim4:
# aptitude install exim4 exim4-config mailx

Para configurar exim adecuadamente se ejecuta la siguiente orden:
# dpkg-reconfigure exim4-config

Se inicia un asistente de configuración, en el que se preguntarán algunos datos,respondiendo lo siguiente:
Tipo de configuración general del correo: El correo se envía mediante un «smarthost»; se recibe a través de SMTP o fetchmail
Nombre del sistema de correo: localhost
Direcciones IP en las que recibir conexiones SMTP entrantes: 127.0.0.1
Otros destinos para los que se acepta el correo: Se deja en blanco
Máquinas para las cuales reenviar correo: Se deja en blanco
Dirección IP o nombre de equipo para el «smarthost» saliente: smtp.gmail.com::587
¿Desea ocultar el nombre de correo local en los mensajes salientes?: No
¿Limitar el número de consultas de DNS (marcación bajo demanda)?: No
Mecanismo de entrega para el correo local: formato mbox en «/var/mail»
¿Dividir la configuración en pequeños ficheros?: No

La información proporcionada en el asistente se almacena en "/etc/exim4/update-exim4.conf.conf" y en "/var/lib/exim4/config.autogenerated".

Luego hay que configurar la cuenta de usuario de gmail que se usará para el envío de correos. se edita el archivo /etc/exim4/passwd.client y se agregan las siguientes lineas modificando el nombre de usuario y el password de la cuenta de Gmail que se desea usar:
gmail-smtp.l.google.com:NombreDeCuenta@gmail.com:Password
*.google.com:NombreDeCuenta@gmail.com:Password
smtp.gmail.com:NombreDeCuenta@gmail.com:Password


Hay que verificar que el archivo /etc/exim4/passwd.client pertenezca al usuario root y grupo Debian-exim y que sólo pueda ser leido por ellos (por default, así está). En caso contrario hay que ejecutar:
# chown root:Debian-exim /etc/exim4/passwd.client
# chmod 640 /etc/exim4/passwd.client


Reiniciar el servicio de correo para que se apliquen los cambios:
# /etc/init.d/exim4 restart

Para ver o monitorizar el funcionamiento de exim (pudiendo apreciar cuando se envían mails o problemas posibles problemas), se ejecuta:
# tail -f /var/log/exim4/mainlog

Para probar que funciona se puede enviar un mail desde la consola
echo 'Contenido del mail de Pruebas' | mail usuarioDestinatario@unDominio.com -s "Asunto del correo"

También se puede enviar un correo que indique el espacio en disco duro disponible:
df -h | mail usuarioDestinatario@unDominio.com -s "Espacio en el disco"

En los correos enviados aparecerá como FROM el nombre del usuario del sistema que envío dicho correo. Es decir, si se envía un mail con el usuario root, el campo FROM del mensaje de correo dirá: root (NombreDeCuenta@gmail.com)

Hasta el momento se puede enviar correos a cualquier cuenta de correo externa (Gmail.com, hotmail.com, cualquierDominio.com, etc) y a los usuarios locales. Los usuarios locales podrán recibir sus mensajes de manera normal usando el comando mail, mutt o cualquier cliente de correo.

Para que los correos de los usuarios locales del Sistema se envíen a una cuenta de correo externa hay que editar el archivo /etc/aliases y crear un alias a los usuarios locales que se deseen enviar a una cuenta externa. Quedando algo similar a:
root: usuarioDelSistema
usuarioDelSistema: CualquierCuentaDeUsuario@gmail.com


Lo anterior indica que los correos que se envíen a usuarioDelSistema los recibirá CualquierCuentaDeUsuario@gmail.com.

Se reinicia el servicio de correo para que se apliquen los cambios:
# /etc/init.d/exim4 restart

En algunas páginas mencionan que se debe modificar el archivo "/etc/email-addresses", pero no es necesario.

FUENTE:
http://wiki.debian.org/GmailAndExim4
http://mail.google.com/support/bin/answer.py?answer=78799

13 de noviembre de 2010

Espacio en disco duro reservado para root


Los sistemas de archivos ext3 y ext4 por default reservan el 5% del espacio en disco de la partición para el usuario root reduciendo el espacio en disco que se puede utilizar. Esto es muy útil en las particiones raiz (/), /var y /root pues si en algún momento la partición se llena, gracias a ese espacio que se reserva el usuario root puede acceder al sistema liberar espacio y solucionar el inconveniente. Sin embargo, las particiones cuyo destino sea almacenar datos (como /home) no tiene mucho sentido desperdiciar ese %5 de espacio. Si sólo se tiene una sola partición para todo el sistema es recomendable dejar dicho espacio de reserva.

El comando tune2fs sirve para visualizar y modificar el espacio reservado para root.

Con el siguiente comando se puede ver la información detallada sobre el espacio asignado para los procesos que se ejecuten como root:
# tune2fs -l /dev/sda1

Mostrará varios datos, entre ellos:
Block count: 48584560
Reserved block count: 2429228


Como se puede ver el %5 de la partición esta reservado. También mostrará la fecha en que se creó dicho sistema de archivos (Filesystem created)

Con el siguiente comando se modifica a %1 el porcentaje de espacio reservado para root de una partición ext3/ext4:
# tune2fs -m 1 /dev/sda1

Si no se desea asignar un porcentaje de espacio reservado al formatear una partición con Ext3/Ext4 se puede ejecutar el siguiente comando:
# mkfs.ext3 -m 0 /dev/sda1

También se puede modificar el tiempo en que debe es analizado automáticamente el sistema de archivos (Por default cada 30 montajes o 180 días, lo que suceda primero) para prevenir fallos. Con el siguiente comando se modifica a 50 montajes máximos:
# tune2fs -c 50 /dev/sda1

Con el parámetro -i se modifican los días máximo.

Particiones en GNU/Linux


GNU/Linux puede instalarse en una sola partición, sin embargo en ocasiones es recomendable usar particiones diferentes para determinados directorios. Por ejemplo puede separarse el area de intercambio (swap), /boot, /home, /mnt, /opt, /root, /tmp, /usr, /var, etc en particiones diferentes.

Si se desea particionar, el tamaño a asignar a cada partición varia dependiendo del uso que se le dará. A continuación se muestra las particiones más comunes en que se puede dividir un disco duro y el espacio recomendado para dichas particiones:
/ Depende del numero de particiones en que se particionará el disco duro y de la cantidad de aplicaciones que se instalaran. Para un servidor con /var y /home separadas con 10GB es más que suficiente, incluso con 5GB basta y sobra.
/boot 100MB
/home Depende del uso que se le dará al equipo. Si los usuarios almacenaran mucha información se recomienda un valor grande.
/var Depende del uso que se le dará al equipo. Si es para un server se recomienda un valor grande, de lo contrario unos 5 o 20GB es suficiente
/usr Depende de la cantidad de paquetes que se vayan a instalar, pues este directorio contiene todos los programas para usuarios (/usr/bin), bibliotecas (/usr/lib), documentación (/usr/share/doc), etc.

Para un equipo de escritorio no hay mucha utilidad crear muchas particiones. Con /, /home y la de intercambio es suficiente. Para un servidor es muy recomendable separar al menos /home, /var y /boot de /.

11 de noviembre de 2010

Modificar Zona horaria de un equipo


Introducción

Para Sinaloa, México el tiempo de la montaña o zona Pacífico es el huso horario oficial correspondiente en México al UTC -7, es decir, siete horas menos que en el tiempo universal coordinado o UTC, también conocido como horario GMT.

Durante el horario de verano, este huso horario cambia al de la Zona Centro (del UTC -7 al UTC -6).


Modificación de la zona horaria

Si por alguna razón durante el proceso de instalación se eligió una zona horaria errónea se puede corregir editando el archivo "/etc/timezone" que es donde se almacena la zona horaria. O lo más recomendable ejecutando la siguiente orden:
# dpkg-reconfigure tzdata

Si deseamos que la hora sea exacta, se puede sincronizar la hora con un servidor:
# ntpdate -s pool.ntp.org
o
# ntpdate-debian

9 de noviembre de 2010

Software para monitorizar y verificar estado de discos duros


Verificar estado del disco duro

Hay varias herramientas que permiten verificar el estado en que se encuentra un disco. Una de ellas es el comando smartctl. Smartctl se encuentra en el paquete smartmontools y está en los repositorios de Debian por lo que su instalación es sencilla:
# aptitude install smartmontools

Para una mejor lectura se puede ejecutar smartctl de la siguiente forma para revisar el estado de un disco duro (en este caso sda):
# smartctl -a /dev/sda | less

Mostrará información del disco duro como marca, modelo, No de Serie, etc. También mostrará estadísticas de uso y errores que se hayan presentado.

SMART overall-health self-assessment test result indica el estado del disco duro. Si dice PASSED significa que el disco duro está en buen estado.
Power_Cycle_Count indica el número de veces que ha arrancado el disco duro
Power_On_Half_Minutes indica el tiempo total que ha trabajado el disco duro
Reallocated_Sector_Ct indica los sectores dañados

Más información en su manual:
# man smartctl


Reparar sectores dañados

Si se encuentran algunos sectores dañados, se pueden reparar con el comando badblocks:
# badblocks -s -v -n -f /dev/sdb1

Los parámetros:
-s significa que nos muestra el proceso de escaneo del disco, mostrandonos los sectores ya checados.
-v modo verbose
-n nos pone en modo no destructivo, esto significa que si se recuperaran los sectores dañados la información en el disco duro no sera dañada o eliminada.
-f repara los sectores dañados.

Una alternativa a badblocks es HDD Regenerator que aunque no es Software libre funciona bien.

Monitorizar estado del disco duro

Hay otra herramienta llamada smart-notifier que manda un mensaje cuando el disco duro este propenso a fallar. Incluso cuando el disco duro cambia de temperatura y se calienta más de lo normal manda un mensaje en pantalla. Su instalación es sencilla como todos los paquetes en Debian:
# aptitude install smart-notifier

Una vez instalado, se ejecutará cuando se inicie sesión en el entorno gráfico. Para verificar que se ejecutará en Gnome hay que ir al menú Sistema, Preferencias, Sesiones. En la pestaña Programas al inicio se encontrará la lista de programas y entre ellas "Smart Notifier". En caso de que no se encuentre se agrega y en el comando se coloca "smart-notifier".

Ahora sólo hay que verificar que el demonio smartmontools se ejecute en el arranque del sistema (puede hacerse fácilmente con el comando rcconf).