martes, 16 de agosto de 2011

Crear todos los usuarios de un Active Directory mediante script VBS

La idea es crear todos los usuarios del dominio de manera automatizada.
para ello utilizamos 2 scripts un .bat y un .vbs. El .bat se encarga de llamar al vbs para crear los usuarios.

El script "crea_usuario.vbs" al cual se le pasan los parametros contenedor, nombre de usuario, contraseña y script de logon.

Ej de uso: csript crear_usuario.vbs "OU=directivos,OU=empresa01" directivo01 clavedirectivo01 scriptlogon_directivo01.bat

strContainer = WScript.Arguments.Unnamed(0)
strName = WScript.Arguments.Unnamed(1)
strPasswd = WScript.Arguments.Unnamed(2)
strLogonScript= WScript.Arguments.Unnamed(3)

'***********************************************
'*         Connect to a container              *
'***********************************************
Set objRootDSE = GetObject("LDAP://rootDSE")
If strContainer = "" Then
  Set objContainer = GetObject("LDAP://" & objRootDSE.Get("defaultNamingContext"))
Else
  Set objContainer = GetObject("LDAP://" & strContainer & "," & objRootDSE.Get("defaultNamingContext"))
End If
'***********************************************
'*       End connect to a container            *
'***********************************************

Set objUser = objContainer.Create("user", "cn=" & strName)
objUser.Put "sAMAccountName", strName
objUser.SetInfo

Set objUser = GetObject("LDAP://cn=" & strName & "," & strContainer & "," & objRootDSE.Get("defaultNamingContext"))

objUser.SetPassword(strPassword)
objUser.scriptPath = strLogonScript

objUser.SetInfo


WScript.Quit

El script .bat lo llamaremos crear_usuarios_midominioNT.bat y se encarga de crear cada usuario llamando al script .vbs
@echo off
color 0a
cls
cscript crear_usuario.vbs "OU=directivos,OU=empresa01" directivo01 Cl@v3212011 directivos.bat
cscript crear_usuario.vbs "OU=empleados,OU=empresa01" empleado01 Cl@v3212011 empleados.bat
cscript crear_usuario.vbs "OU=comerciales,OU=empresa01" comercial02 Cl@v3212011 comerciales.bat
pause

Configurar windows server 2008 R2 para que se sincronice con un servidor NTP externo

echo Mostrar configuracion actual
w32tm /query /configuration


echo Parando el servicio horario
net stop w32time


echo Configurar servidor NTP externo con el que sincronizar
w32tm /config /syncfromflags:manual /manualpeerlist:"hora.roa.es"
w32tm /config /reliable:yes

echo Iniciando el servicio horario
net start w32time

echo Mostrar configuracion actual 
w32tm /query /configuration


echo Comprobar la diferencia horaria
w32tm /monitor /computers:miservidorw2008server

domingo, 14 de agosto de 2011

Comandos básicos Zimbra CLI

Para ejecutar estos comandos debemos ser el usuario zimbra

su - zimbra

#Ver todas las cuentas de Administrador
zmprov gaaa

#Ver todas las cuentas
zmprov -l gaa

#Ver todas las cuentas de un dominio
DOMINIO=
midominio1.com

zmprov gaa -v $DOMINIO

#Renombrar una cuenta
CUENTA=
usuario1@midominio1.com
CUENTA_RENOMBRADA=otro
usuario@midominio2.com

zmprov ra $CUENTA $CUENTA_RENOMBRADA

#Cambiar la contraseña
CUENTA=
usuario1@midominio1.com
CLAVE_NUEVA=clave123

zmprov sp $CUENTA $CLAVENUEVA

#Crear lista de distribucion
LISTA_DISTRIBUCION=lista1@midominio1.com

zmprov cdl $LISTA_DISTRIBUCION

#Añadir nuevo miembro a la lista de distribucion
LISTA_DISTRIBUCION=lista1@midominio1.com
MIEMBRO_NUEVO=usuario201delalista@otrodominio.com

zmprov adlm $LISTA_DISTRIBUCION $MIEMBRO_NUEVO


#Eliminar cuenta
CUENTA=usuario1
@midominio1.com

zmprov da $CUENTA

martes, 5 de julio de 2011

Cómo cargar la configuración de fabrica en un switch Juniper EX2200

Hay que ejecutar los siguientes comandos desde la consola (puerto serie) o por SSH:
lab@EX2200> start shell user root
Password:
root@EX2200% cd /config
root@EX2200% rm -rf juniper.conf*
root@EX2200% cd /config/db/config
root@EX2200% rm -rf juniper.conf.*
root@EX2200% reboot
 Aquí te cuentan todas las posibilidades para pasar ha valores de fabrica
http://kb.juniper.net/InfoCenter/index?page=content&id=KB17126&cat=EX_SERIES&actp=LIST

viernes, 29 de abril de 2011

Cómo configurar un servidor DNS para que responda una cosa a la lan y otra distinta a internet

Voy a pasaros las configuraciones que a mi me funcionan con BIND9 en Ubuntu 10.04 LTS.
Parto de un DNS master y un DNS slave.
Caso midominio.es:
En el caso de preguntar desde redes internas deben responder con IPs internas cuando preguntan por midominio.es, además estos 2 DNS deben realizar forward, es decir, deben resolver cualquier nombre dns (Ej: www.google.com).
En el caso de preguntar desde redes externas deben responder con IPs externas cuando preguntan por midominio.es y no responder nada para el resto de dominios (por seguridad, así nadie en internet utilizará nuestros DNS en su configuración de red).

Hay que configurar 3 archivos en cada servidor, están en /etc/bind:
named.conf (Este es igual en el master y en el esclavo)

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";

//Comentamos este include por que ahora va a depender de cada view en /etc/bind/named.conf.local
//include "/etc/bind/named.conf.default-zones";

named.conf.options (DNS master)

acl "dns_slaves" {
    192.168.3.102;                        # IPs de los servidores DNS esclavos
};

acl "lan_hosts" {
    127.0.0.1;                            # allow loop back
    192.168.1.0/24;                        # lan1
    192.168.2.0/24;                        # lan2
    192.168.3.0/24;                        # lan dns servers
    192.168.4.0/24;                        # lan4
};

options {
    directory "/var/cache/bind";
    forwarders {
        8.8.8.8;                        #DNS publico 1 de google
        8.8.4.4;                        #DNS publico 2 de google
        192.168.2.127;                    #DNS interno Active directory lan2
        192.168.1.127;                    #DNS interno Active directory lan1
        192.168.4.127;                    #DNS interno Active directory lan4
    };
    listen-on {            #IPs en las que este DNS escucha las peticiones
        192.168.3.101;
        127.0.0.1;
    };
    auth-nxdomain no;                    #RFC1035
    allow-query { any; };                # permitir que cualquiera haga peticiones
    allow-recursion { lan_hosts; };        # permitir recursion dns
    allow-query-cache { lan_hosts; };    # permitir hacer uso del DNS cache para dominios no alojados en este DNS
    recursion no;                        # Deshabilitar decursion DNS a nivel general
    version "0";                        # Ocultar la version de este software
};

named.conf.options (DNS esclavo) (lo único que cambia es listen-on)


acl "dns_slaves" {
    192.168.3.102;                        # IPs de los servidores DNS esclavos
};

acl "lan_hosts" {
    127.0.0.1;                            # allow loop back
    192.168.1.0/24;                        # lan1
    192.168.2.0/24;                        # lan2
    192.168.3.0/24;                        # lan dns servers
    192.168.4.0/24;                        # lan4
};

options {
    directory "/var/cache/bind";
    forwarders {
        8.8.8.8;                        #DNS publico 1 de google
        8.8.4.4;                        #DNS publico 2 de google
        192.168.2.127;                    #DNS interno Active directory lan2
        192.168.1.127;                    #DNS interno Active directory lan1
        192.168.4.127;                    #DNS interno Active directory lan4
    };
    listen-on {            #IPs en las que este DNS escucha las peticiones
        192.168.3.102;
        127.0.0.1;
    };
    auth-nxdomain no;                    #RFC1035
    allow-query { any; };                # permitir que cualquiera haga peticiones
    allow-recursion { lan_hosts; };        # permitir recursion dns
    allow-query-cache { lan_hosts; };    # permitir hacer uso del DNS cache para dominios no alojados en este DNS
    recursion no;                        # Deshabilitar decursion DNS a nivel general
    version "0";                        # Ocultar la version de este software
};


named.conf.local (DNS master) Aquí es donde realmente son diferentes el master del esclavo

view "internal" {
        match-clients { lan_hosts; };            # Esta vista es para los equipos de la acl lan_hosts
        recursion yes;                            # Permitir consultas recursivas
        notify no;                                # Deshabilitar notificaciones AA

        // prime the server with knowledge of the root servers
        zone "." {
                type hint;
                file "/etc/bind/db.root";
        };
        // Ser autorizado para zona localhost, forward y zonas inversas, y para
        // zonas broadcast asi como para RFC 1912
        zone "localhost" {
                type master;
                file "/etc/bind/db.local";
        };
        zone "127.in-addr.arpa" {
                type master;
                file "/etc/bind/db.127";
        };
        zone "0.in-addr.arpa" {
                type master;
                file "/etc/bind/db.0";
        };
        zone "255.in-addr.arpa" {
                type master;
                file "/etc/bind/db.255";
        };
       
        //Configuracion de los dominios mantenidos en este DNS master (vista interna)
        zone "midominio.es" {
                type master;
                file "/etc/bind/internal/db.midominio.es";
        };
       
};

view "external" {
        match-clients { any; };                        # Esta vista es para el resto de equipos que no estén en la view internal
        recursion no;                                # deshabilitar consultas DNS recursivas
        allow-transfer { dns_slaves; };                    #Permitr a los equipos de la acl "dns_slaves" transferecias de zona
       
        //Configuracion de los dominios mantenidos en este DNS master (vista externa)
        zone "midominio.es" {
                type master;
                file "/etc/bind/external/db.midominio.es";
        };
};

named.conf.local (DNS esclavo) Aquí es donde realmente son diferentes el master del esclavo

view "internal" {
        match-clients { lan_hosts; };            # Esta vista es para los equipos de la acl lan_hosts
        recursion yes;                            # Permitir consultas recursivas
        notify no;                                # Deshabilitar notificaciones AA

        // prime the server with knowledge of the root servers
        zone "." {
                type hint;
                file "/etc/bind/db.root";
        };
        // Ser autorizado para zona localhost, forward y zonas inversas, y para
        // zonas broadcast asi como para RFC 1912
        zone "localhost" {
                type master;
                file "/etc/bind/db.local";
        };
        zone "127.in-addr.arpa" {
                type master;
                file "/etc/bind/db.127";
        };
        zone "0.in-addr.arpa" {
                type master;
                file "/etc/bind/db.0";
        };
        zone "255.in-addr.arpa" {
                type master;
                file "/etc/bind/db.255";
        };

        //Configuracion de los dominios para los que este servidor es esclavo
        zone "midominio.es" {
                type slave;
                masters { 192.168.3.101; };
                file "db-int.midominio.es";
        };
};

view "external" {
        match-clients { any; };                        # Esta vista es para el resto de equipos que no estén en la view internal
        recursion no;                                # deshabilitar consultas DNS recursivas
       
        //Configuracion de los dominios para los que este servidor es esclavo
        zone "midominio.es" {
                type slave;
                masters { 192.168.3.101; };
                file "db-ext.midominio.es";
        };
};

Editado posteriormente:
En el DNS master existirán dos archivos, que definen la zona midominio.es


/etc/bind/external/db.midominio.es
$TTL    604800
@    IN    SOA    midominio.es. dnsmaster.midominio.es. (
        12345678    ; Serial
        3600        ; Refresh
        600        ; Retry
        43200        ; Expire
        60 )    ; Negative Cache TTL
;
@    IN    NS    dns1.midominio.es.
@    IN    NS    dns2.midominio.es.
@    IN    MX    5    smtp1.midominio.es.
@    IN    MX    10    smtp2.midominio.es.
@    IN    TXT    "v=spf1 +mx +ptr -all"
@    IN    A    1.1.1.1
dns1    IN    A    1.1.1.1
dns2    IN    A    1.1.1.2
www    IN    A    1.1.1.1
ftp    IN    CNAME    www.midominio.es.
smtp1    IN    A    1.1.1.1
smtp2    IN    A    1.1.1.2

/etc/bind/internal/db.midominio.es

$TTL    604800
@    IN    SOA    midominio.es. dnsmaster.midominio.es. (
        12345678    ; Serial
        3600        ; Refresh
        600        ; Retry
        43200        ; Expire
        60 )    ; Negative Cache TTL
;
@    IN    NS    dns1.midominio.es.
@    IN    NS    dns2.midominio.es.
@    IN    MX    5    smtp1.midominio.es.
@    IN    MX    10    smtp2.midominio.es.
@    IN    TXT    "v=spf1 +mx +ptr -all"
@    IN    A    192.168.3.103
dns1    IN    A    192.168.3.101
dns2    IN    A    192.168.3.102
www    IN    A    192.168.3.103
ftp    IN    CNAME    www.midominio.es.
smtp1    IN    A    192.168.3.38
smtp2    IN    A    192.168.3.38

miércoles, 9 de febrero de 2011

Script para realizar backup de nagios

#!/bin/bash
#
#Script de backup de nagios
#

#CONFIGURAR VARIABLES

FECHA=`date +%Y%m%d%H%M%S`
BACKUP_DIR=/root/backups
BACKUP_FILE=$BACKUP_DIR/$FECHA.backup-nagios.tar.gz

FILES_APACHE="/etc/cron.daily/apache2 /etc/apache2 /etc/logrotate.d/apache2 /etc/php5/apache2 /etc/default/apache2 /usr/sbin/apache2 /usr/lib/apache2 /usr/lib/apache2/mpm-prefork/apache2 /usr/lib/apache2/mpm-itk/apache2 /usr/lib/apache2/mpm-event/apache2 /usr/lib/apache2/mpm-worker/apache2 /usr/share/apache2 /usr/share/bug/apache2 /var/run/apache2 /var/lock/apache2 /var/lib/update-rc.d/apache2 /var/cache/apache2"
FILES_NAGIOS="/etc/nagios  /etc/nagios3  /etc/nagios-plugins /usr/lib/nagios /usr/lib/nagios3 /usr/share/nagios /usr/share/nagios3 /usr/share/nagios-plugins /usr/share/nagios-snmp-plugins /var/run/nagios3 /var/lib/update-rc.d/nagios3 /var/lib/nagios3 /var/cache/nagios3 /var/lib/nagios"
FILES_NAGIOSQL="/etc/nagiosql /usr/share/lintian/overrides/nagiosql /usr/share/nagiosql /usr/share/doc/nagiosql"
FILES_NAGVIS="/etc/nagvis /usr/share/nagios3/htdocs/nagvis /usr/share/lintian/overrides/nagvis /usr/share/nagvis /usr/share/nagvis/htdocs/nagvis /var/lib/nagvis"
FILES_PNP4NAGIOS="/etc/pnp4nagios /usr/lib/pnp4nagios /usr/share/pnp4nagios /var/lib/pnp4nagios /var/lib/pnp4nagios /var/spool/pnp4nagios"
FILES_PHPMYADMIN="/etc/phpmyadmin /usr/share/phpmyadmin /usr/share/dbconfig-common/data/phpmyadmin /var/lib/phpmyadmin"

#Backup de archivos
tar cvfz $BACKUP_FILE $FILES_APACHE $FILES_NAGIOS $FILES_NAGIOSQL $FILES_NAGVIS $FILES_PNP4NAGIOS $FILES_PHPMYADMIN

Recuperar contraseña del usuario root de MySQL

En ubuntu y debian es muy secillo resetear la contraseña del usuario root del servidor mysql 
si somos el usuario root del sistema.
 
 
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nueva_contraseña') WHERE User='root'; 
mysql> FLUSH PRIVILEGES; 
mysql> \q
sudo killall mysqld; 
sudo /etc/init.d/mysql start
extraido de (guia ubuntu)

Script backup bases de datos mysql

#script que guarda copia de todas la bases de datos
#!/bin/bash
## BEGIN CONFIG
##
FECHA=`date +%Y%m%d%H%M%S`HOST=localhost
USER=root
PASS=secretodeusuario
BACKUP_DIR=/root/backups

## END CONFIG ##
if [ ! -d $BACKUP_DIR ];
then
        mkdir -p $BACKUP_DIR
fi

# Backup de MySQL
MYSQL_DBS=$(mysqlshow -h $HOST -u $USER -p$PASS | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /mysql/) { print $2 }');

for DB in $MYSQL_DBS ;
do
        echo "* Backuping MySQL data from $DB@$HOST..."
        mysqldump -h $HOST -u $USER -p$PASS $DB > $BACKUP_DIR/$FECHA.mysql_$DB.sql
done
ls -l $BACKUP_DIR

miércoles, 2 de febrero de 2011

Cómo instalar vmware-tools en ubuntu

Desde la aplicacion vmware player o vsphere pulsamos la instalación de vmware-tools, esto lo que hace es introducir un cd en la unidad virtual con el instalador de vmware-tools.

Hay que introducir posteriormente los siguientes comandos:

sudo apt-get update && apt-get upgrade
sudo mount /dev/cdrom /media/cdrom
cp /media/cdrom/VMware*.tar.gz /tmp
sudo umount /media/cdrom
cd /tmp
tar xzvf VMware*.gz
cd vmware-tools-distrib/
sudo ./vmware-install.pl

A partir de aqui en pulsar ENTER hasta que acabe y debería ir todo bien.

Esta información la saqué de aquí
 
En el caso en el que actualicemos el kernel y las vmware-tools dejen de funcionar debemos ejecutar el siguiente comando:

sudo vmware-config-tools.pl -d


En últimas versiones de ubuntu:


sudo apt-get update && apt-get upgrade
sudo mount /dev/cdrom /cdrom
cp /cdrom/VMware*.tar.gz /tmp
sudo umount /cdrom
cd /tmp
tar xzvf VMware*.gz
cd vmware-tools-distrib/
sudo ./vmware-install.pl

viernes, 21 de enero de 2011

Cómo castellanizar Ubuntu desde terminal


aptitude install language-pack-es language-pack-es-base manpages-es manpages-es-extra language-selector language-support-es language-support-writing-es console-data

En caso de que el paquete console-data ya estuviese instalado ejecutamos lo siguiente. Este paquete reconfigura el teclado de los tty desde un terminal

dpkg-reconfigure console-data