martes, 15 de noviembre de 2011

IPtables en Red Hat

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables

martes, 4 de octubre de 2011

Sincronizar la hora en un windows Vista o posterior

Al ejecutar estos comandos sincronizamos la hora de un windows vista, 7, 2008, etc con el servidor horario (NTP) de "La Armada Española" que es la hora oficial de España


net time /setsntp:"hora.roa.es"
w32tm /query /peers
net stop w32time
net start w32time
w32tm /resync
w32tm /query /peers

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