Archivos categorizados en: Línea de comandos

De vuelta al cyberespacio

Categoría(s): Línea de comandos, Servidores

Hacía ya mas de una semana que no dedicaba tiempo para dejar alguna nota en el blog…  Pues, ocupado en diversas cosas, y de paso sin dejar de mencionar que debido a un accidente que cause yo mismo he dejado fuera de servicio mi servidor Web… y como una casual situación, recientemente  han lanzado el FreeBSD 8.0

Estuve tentado a realizar respaldo de las bases de datos, configuraciones de sistemas, entre otras cosillas por alli e instalar todo de nuevo con la versión recién liberada de FreeBSD. Sin embargo, me dedique a investigar aquello que impedía que el servidor montara todos los servicios configurados y no entrara en un modo monousuario.

Bien…!!  –El hecho es que reiniciando varias veces el servidor y leyendo una vez mas los errores, pude descubrir a que se debía la falla… Asunto resuelto, y ya tengo de vuelta mi servidor web en el cyberespacio.

Es de vital importancia  tanto como sea posible la lectura de los logs y las ventanas de errores, y así seguro surgirán ideas para saber donde buscar y que configuración revisar…

La solución puede estar en una línea de código.

Seguir leyendo» 1 Comentario

Proteger un sitio web con autenticación en Apache

Categoría(s): Apache, Línea de comandos, Website

En mas de una ocasión estamos tentado a utilizar nuestro sitio web para publicar un directorio, y así tener un acceso expedito a la información que queramos tomar en cualquier momento. Sin embargo, puede suceder  que te encuentras de manos atadas porque no puedes acceder debido a las restricciones puesta por el Firewall de la oficina donde se te “prendió el bombillo” y quieres buscar allí lo que necesitas

En caso de restricciones la mejor manera que acceder es via HTTP -puerto- que siempre estará abierto y disponible.

En ese caso, cae bien ir a tu propio sitio web y bajar lo necesario. No obstante, es importante tener una manera de garantizar que tu información sólo sea accesible por ti mismo –o a quienes considere confiable- con algún tipo de mecanismo de autenticación.

En este pequeño tutorial,  pondré un ejemplo de como hacerlo, considerando que tienes tu sitio web  con un VirtualHost declarado.

Suponiendo que la configuración de tu VirtualHost, sea mas o menos así:

    DocumentRoot "/usr/local/www/apache22/data"
    ServerName misitioweb.epico.net 
 
         Options Indexes +FollowSymLinks -Multiviews
          AllowOverride All
         Order allow,deny
         Allow from all
         RedirectMatch ^/$ "http://misitioweb.epico.net/personal/"

Es importante habilitar esta instrucción así, pues es la que activa el uso de las directivas en el archivo “.htaccess”.

AllowOverride All

Ahora crearé un archivo dentro del directorio “personal” que apunta a la URL publicada que servirá para invocar la autenticación del Apache, y lo salvaré como “.htaccess“:

AuthName "Mi Info Personal - Acceso exclusivo"
     AuthType Basic
     AuthUserFile /usr/home/jhon/documents/.htpasswd
     AuthGroupFile /dev/null
     require user jhon

Ahora crearé un archivo con los parámetros que se usaran para la autenticación:

htpasswd -c .htpasswd jhon

De esta manera, también estoy asignando la contraseña de acceso al usuario.

Además, si crees que a futuro podría necesitar darle acceso a otras personas, entonces se hará un cambio en el archivo “.htaccess“, y agregare las siguientes lineas:

AuthGroupFile AuthUserFile /usr/home/jhon/documents/.htgroup
require group member-users

Ahora elimino la línea:

 require user jhon

Para concluir, ahora sólo se necesita reiniciar el servidor web y comprobar el acceso a tu sitio web con una ventana semejante.

authorizationrequired-googlechrome

Seguir leyendo» Sin comentarios

Cambio de contraseña de cuentas en Zimbra

Categoría(s): Línea de comandos, Perl, Zimbra

La plataforma Zimbra brinda una interfaz gráfica que permite la administración de las cuentas de usuario. Sin embargo, cuando quiere delegar en otras personas –con limitado acceso- tareas frecuentes como el simple cambio de la contraseña de usuario  –siempre hay usuario que nunca anota y cada lunes olvidan sus claves– entonces es necesario poder cambiar la contraseña desde la  línea de comandos del sistema.

Aquí comparto un modesto script que he escrito en Perl, y que me ha servido de mucho.

#!/usr/bin/perl -w
# por WJPP, 30/4/2009
#
#  ultima edicion:
#  Thu Nov 12 16:01:40 VET 2009
#
#  CHANGELOGS
#
#  26/5/2009 - activar la solicitud de cambio
#               de contraseña.
#
#
# Objetivo: Asignar una nueva contraseña al usuario de
#               Zimbra en base a la fecha y hora al
#               momento que se procesa el cambio.
#
# version
my $vers = "1.3";
 
use strict;
use Term::ANSIColor;
use Digest::MD5 qw(md5 md5_hex md5_base64);
sub gdfs { # get date from system
# recibir fecha del sistema
  my ($sec,$min,$hour,$mday,$mon,$year,
       $wday,$yday,$isdst) = localtime time;
       return sprintf("%02d-%02d-%4d_%02d.%02d.%02d",
       $mday,$mon+1,$year+1900,$hour,$min,$sec);
}# endof gdfs 
 
my $fechahoy = &gdfs();
 
print color("green"),"\n\t Asignar nueva contraseña al usuario Zimbra - Vers. $vers \n",color("reset");
print "\t-----------------------------------------------------------\n";
 
if ($#ARGV != 0) { # valida entrada de argumento
    print color("magenta"),"\n\tUso: $0  \n",color("reset");
    print color("yellow"),"Debe indicar  email del usuario\n", color("reset");
    exit;
}
   my $emailx = $ARGV[0]; # email del usuario
   # tomo solo 8 caracteres del MD5 de la fecha
   my $md5pass = substr(md5_hex($fechahoy),0,8);
   print "\tEmail ......................: ";
   print color("bold blue"),$emailx,color("reset");print "\n";
   print "\tnueva contraseña asignada ..: ";
   print color("white on_blue"),$md5pass,color("reset");print "\n\n\n";
   ## actualiza la contraseña en el LDAP del Zimbra
   if ( system("su - zimbra -c \'zmprov sp $emailx $md5pass \' ") !=0) {
      die "No se pude actualizar la contraseña en el Zimbra\n" ; }
      else { # activa la solicitud de cambio de contraseña para el proximo inicio de sesion
         system("su - zimbra -c \'zmprov ma $emailx zimbraPasswordMustChange TRUE\' ");
         print color("white on_red"),"\t Notifique al usuario acerca de su nueva contraseña ",color("reset");print
"\n";
   } # endif system
die "Fin..\n";

ejemplo del uso:

sudo ./assignpass.pl prueba01@winner.sytes.net

Cabe destacar que al usar el sudo por supuesto el usuario que ejecuta el comando debe ser miembro de un grupo permitido.

Seguir leyendo» Sin comentarios