viernes, 29 de enero de 2010

Script ssh con sshpass

Install sshpass under Debian / Ubuntu Linux

Type the following command:
$ sudo apt-get install sshpass
How do I use sshpass?

Login to ssh server called server.example.com with password called t@uyM59bQ:
$ sshpass -p 't@uyM59bQ' ssh username@server.example.com
Under shell script you may need to disable host key checking:
$ sshpass -p 't@uyM59bQ' ssh -o StrictHostKeyChecking=no username@server.example.com
How do I backup /var/www/html using rsync?

Run rsync over SSH using password authentication, passing the password on the command line:
$ rsync --rsh="sshpass -p myPassword ssh -l username" server.example.com:/var/www/html/ /backup/

------------------------------------------------------------------------------------------------
#!/bin/sh
# Este script se conecta a server por ssh
clear
echo "Loguaer server por ssh"
sshpass -p 'poner_pass' ssh root@192.168.xxx.xx

jueves, 28 de enero de 2010

Firewall para redes. Filtrado de paquetes

Cortafuegos básicos

A continucación vemos unos ejemplos de cortafuegos básicos. No son cortafuegos hechos para cortar y pegar, la idea es proponer diversos ejemplos para que puedas sacar tus propias conclusiones y establecer el cortafuegos de acuerdo con sus propios intereses. Cada cortafuegos debería adaptarse a unas necesidades concretas.
Proteger la propia máquina I

El primer ejemplo define un ejemplo de cortafuegos para una máquina individual:

## Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F

## Establecemos politicas predeterminada
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# Aceptamos todo de localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT

# A nuestra IP le dejamos todo
iptables -A INPUT -s 192.168.0.1 -j ACCEPT

# Permitimos una conexión a ssh y telnet (22 y 23) desde un equipo
iptables -A INPUT -s 192.168.0.37 -p tcp --dport 22:23 -j ACCEPT

# A otro le permitimos acceso FTP
iptables -A INPUT -s 192.168.0.45 -p tcp -dport 20:21 -j ACCEPT

# El puerto 80 (www) abierto, para un servidor web.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Y el resto, lo cerramos
iptables -A INPUT -p tcp --dport 20:21 -j DROP
iptables -A INPUT -p tcp --dport 22:23 -j DROP
iptables -A INPUT -p tcp --dport 6001 -j DROP

Proteger la propia máquina II

## Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F

## Establecemos politica predeterminadas
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

## creamos una nueva cadena
iptables -N filtro

## definimos las reglas dela nueva cadena
iptables -A filtro -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A filtro -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A filtro -j DROP

# Aceptamos conexiones internas
/sbin/iptables -A INPUT -i lo -j ACCEPT

## Ir a la cadena filtro desde las cadenas INPUT y FORWARD.
iptables -A INPUT -j block
iptables -A FORWARD -j block

Proteger la propia máquina III

## Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F

## Establecemos politica predeterminadas
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# Aceptamos todo de localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT

# A nuestra IP le dejamos todo
iptables -A INPUT -s 192.168.0.1 -j ACCEPT

# Permitimos una conexión a telnet y ssh (puerto 22 y 23) desde un equipo
iptables -A INPUT -s 192.168.0.37 -p tcp --dport 22:23 -j ACCEPT

# A otro le permitimos acceso FTP
iptables -A INPUT -s 192.168.0.45 -p tcp -dport 20:21 -j ACCEPT

# El puerto 80 (www) debe estar abierto, ya que es un servidor web.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Cerramos rango de los puertos privilegiados. Cuidado con este tipo de
# barreras, antes hay que abrir a los que si tienen acceso.
iptables -A INPUT -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 1:1024 -j DROP

# impedimos iniciar conexión en los puertos altos
# (puede que ftp no funcione)
iptables -A INPUT -p tcp --syn --dport 1025:65535 -j DROP

# Cerramos otros puertos que estan abiertos
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 10000 -j DROP

Red local con salida a internet

Una red local con salida a a internet necesita una regla que haga NAT hacia fuera (enmascaramiento en iptables).

# Activamos el reenvío para que FORWARD funcione
echo 1 > /proc/sys/net/ipv4/ip_forward

## FLUSH de reglas
iptables -F
iptables -X
iptables -t nat -F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

## Nota: eth0 es el interfaz conectado a internet y eth1 a la LAN
# acceso localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT

# Al firewall tenemos acceso desde las redes locales
iptables -A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT

# Ahora hacemos enmascaramiento de la red local
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

# Cerramos el rango de puerto bien conocido
iptables -A INPUT -s 0/0 -p tcp -dport 1:1024 -j DROP
iptables -A INPUT -s 0/0 -p udp -dport 1:1024 -j DROP

# Cerramos un puerto de gestión: webmin
iptables -A INPUT -s 0/0 -p tcp -dport 10000 -j DROP

Dos redes locales con salida a internet

Ahora tenemos dos redes locales y una salida a a internet. Ahora necesitamos dos reglas que hagan NAT hacia fuera (enmascaramiento en iptables) y además las reglas de enrutado entre redes.

# Activamos el reenvío para que FORWARD funcione
echo 1 > /proc/sys/net/ipv4/ip_forward

## FLUSH de reglas
iptables -F
iptables -X
iptables -t nat -F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

## Nota: eth0 es el interfaz conectado a internet y eth1 a la LAN
# acceso localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT

# Al firewall tenemos acceso desde las redes locales
iptables -A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -i eth2 -j ACCEPT

# Ahora hacemos enmascaramiento de las redes locales
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# Abrimos el puerto del servidor web
iptables -A INPUT -s 0/0 -p tcp -dport 80 -j ACCEPT

# Abrimos el puerto del servidor DNS
iptables -A INPUT -s 0/0 -p tcp -dport 53 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp -dport 53 -j ACCEPT

# Cerramos el rango de puerto bien conocido
iptables -A INPUT -s 0/0 -p tcp -dport 1:1024 -j DROP
iptables -A INPUT -s 0/0 -p udp -dport 1:1024 -j DROP

# Cerramos un puerto de gestión: webmin
iptables -A INPUT -s 0/0 -p tcp -dport 10000 -j DROP

# configuramos el tráfico entre redes
# permitimos el tráfico para el puerto 445
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -p tcp -dport 445 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -p tcp -dport 445 -j ACCEPT

# denegamos el resto del tráfico
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j REJECT
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j REJECT

Cortafuegos con política FORWARD predeterminada DROP

Esta es la forma aconsejada para configurar un cortafuegos si queremos poner énfasis en la seguridad.

## Vaciado de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica predeterminada: DROP
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


## Acceso desde la red
## Servidores WEB
# Acceso a puertos 80
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --sport 80 -j ACCEPT

# Acceso a puertos 20 y 21 para ftp
iptables -A FORWARD -p tcp --dport 20:21 -j ACCEPT
iptables -A FORWARD -p tcp --sport 20:21 -j ACCEPT

# Acceso a DNS
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -j ACCEPT

## correo electrónico
# Acceso a puerto 25, 110 y 143
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --sport 25 -j ACCEPT

iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 -j ACCEPT

iptables -A FORWARD -p tcp --dport 143 -j ACCEPT
iptables -A FORWARD -p tcp --sport 143 -j ACCEPT

Cortafuegos con política predeterminada DROP

## Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F

## Establecemos predeterminada
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# permitimos el tráfico loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Configuramos el acceso a nuestra IP
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --sport 1:1024 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp --dport 1025:65535 ! --syn -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --sport 1:1024 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 0/0 -p tcp --sport 1025:65535 -j ACCEPT

iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT

# El cortafuegos es también un servidor web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

# El cortafuegos es también un servidor smtp
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT


BUENO BUENO

Manipulación de paquetes

Ya hemos visto algo sobre manipulación de paquetes cuando en el ejemplo de cortafuegos incluíamos una regla para enmascarar los paquetes de la red local hacia internet. En ese caso, cada paquete procedente de la red local se modifica para sustituir su IP privada por la IP pública del gateway de forma que el paquete ya sea válido para internet.

El enmascaramiento es sólo un pequeño ejemplo de todo lo que se puede hacer y forma parte de lo que hemos denominado NAT (network address translation), aunque son posibles otras formas de manipulación.

La manipulación se podrá hacer en las cadenas PREROUTING, POSTROUTING y OUTPUT.

En el caso de PREROUTING podremos modifcar los datos destino de la conexión según nos interese y antes de tomar la deción de enrutamiento. Así podremos desviar paquetes que vayan destinados al host local hacia otro host y viceversa. Sólo tiene sentido en el interfaz de entrada. Esto lo vamos a llamar DNAT (destination NAT)..

El mismo caso se puede aplicar a la cadena OUTPUT y podermos modificar llos datos de destino de los paquetes paquetes que salen de un proceso local. En este caso sólo es aplicable en el interfaz de salida.

Cuando utilizamos la cadena POSTROUTING podremos modificar los paquetes justo antes de devolverlos a la red. Podremos modificar los datos de origen, porque el destino ya se ha decidido en una de las cadenas previas FOWRARD o OUTPUT. Como hemos visto anteriormente, este es el caso de MASQUERADE. Sólo tiene sentido en el interfaz de salida. Esto lo vamos a denominar SNAT (source NAT).
Cambios de destino (DNAT)

Los cambios de destino corresponden a cadena PREROUTING cuando entra el paquete para que estas modificaciones ya se pueda aplicar al decidir si el paquete se eenvía o va dirigido el sistema local. Sólo, como ya hemos visto anteriormente, se puede utilizar la opción «-i» (interfaz de entrada).

Si el paquete tiene origen local el cambio de destino tendremos que hacerlo en la cadena OUTPUT.

En pimer lugar, para el cambio de destino tenemos que usar la opción «-j DNAT», y los argumentos que dispone esta opción, «--to» para especificar una dirección y un puerto opcional. Podremos también especificar rangos de direcciones.

Vemos algunos ejemplos:

## Cambiar la dirección de destino por 192.168.0.254
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 192.168.0.254

## Cambia la dirección de destino por 192.168.0.11 ,192.168.0.12 o 192.168.0.13
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 192.168.0.11-192.168.0.13

Configuración de un proxy

Suponemos que tenemos un proxy en la dirección 192.168.0.1 y el puerto 3128 para las conexiones a servidores web de internet: Con la siguiente regla en el gateway redirigiremos todas las peticiones que se realicen hacia un servidor web (puerto 80) hacia el puerto 3128 de la máquina 192.168.0.1:

## Cambia la dirección de destino del tráfico web por 192.168.0.1 en el puerto 3128
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128

Servidor web con proxy

Ahora suponemos que tenemos un servidor web, pero que para acelerar las conexiones todas las peticiones que se hagan las va a resolver el proxy que está en el mismo equipo pero en el puerto 3128.

## Envía el tráfico que entra dirigido al puerto 80 (web) al proxy squid (transparente)

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Poner un servidor web en una IP privada

Suponemos que tenemos una red con un gateway con la única dirección IP pública y nos interesa tener un servidor web en el interior de la red local, en el equipo 192.168.0.78. Entonces tendremos que poner:

## Envía el tráfico que entra dirigido al puerto 80 (web) al servidor web local (transparente)

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to 192.168.0.78
Cambio de Origen

Los cambios de destino corresponden a cadena POSTROUTING, justo antes de que el paquete sea enviado y para que estas modificaciones no se vean afectadas por la cadena FORWARD, en su caso. Este es un detalle importante, ya que significa que cualquier otro servicio de la máquina Linux (encaminamiento, filtrado de paquetes) verá el paquete sin cambiar. Sólo podremos usar «-o» (interfaz de salida).

En pimer lugar, para el cambio de destino tenemos que usar la opción «-j SNAT», y los argumentos que dispone esta opción, «--to» para especificar una dirección y un puerto opcional. Podremos también especificar rangos de direcciones.

## Cambiar la dirección de origen por 192.168.0.4
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.4

## Cambiar la dirección de origen a 192.168.0.4, 192.168.0.5 ó 192.168.0.6
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.4-192.168.0.6

## Cambiar la dirección de origen por 192.168.0.4, puertos 1-1023
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 192.168.0.4:1-1023

Enmascaramiento

El caso más utilizado de SNAT el el que denominamos «enmascaramiento» (masquerading), que se utiliza para ocultar las direcciones privadas de una red local en el acceso a internet.

No es necesario escribir la dirección de origen de forma explícita con el enmascaramiento:

## Enmascarar todo lo que salga por eth0 proveniente de la red local.
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

martes, 26 de enero de 2010

eBox 1.2 para administradores de red

http://translate.googleusercontent.com/translate_c?hl=es&sl=en&u=http://doc.ebox-platform.com/en/&prev=/search%3Fq%3Debox-squid%26hl%3Des%26sa%3DN&rurl=translate.google.com.ar&twu=1&usg=ALkJrhiZjfpVfIRkVM47CMUDfKwJjDo2Pw

Procedimiento Shink Log sql 2000

CREATE PROCEDURE sp_TruncateLogs
as
Declare @nameLog as varchar(100),
@dataBase as varchar(100)
--SQL 2005

set @database = db_name()

-- ver lo que ocupa
--DBCC SQLPERF(LOGSPACE)

-- truncar log
dump tran @dataBase with no_log

-- achicar archivo fisico poner nombre del archivo fisico del log
select @nameLog = name from sysfiles where name like '%log%'
Set @nameLog = LTRIM(RTRIM(@nameLog))

Reducir el tamaño de los ficheros de una base de datos

Ha veces que el tamaño físico de nuestra base de datos es superior al tamaño real de datos, es decir, en disco el fichero físico de la base de datos puede ocupar un 1GB y realmente estar ocupando 100MB, es decir solo tener 100MB de información, esto es debido a las modificaciones que realizamos durante la vida de la base de datos. Al borrar registro u otros objetos de la base de datos éstos no liberan el espacio físico y por eso aunque nosotros reduzcamos los datos no pasa lo mismo con el tamaño físico.

Para reducir el tamaño del fichero físico debemos utilizar una opción del menú del Enterprise Manager, colocándonos sobre la base de datos pulsamos con el botón derecho del raton y seleccionamos “all tasks” (todas las tareas) -> Shrink Database (imagen 2) y aparece un cuadro de dialogo como en la imagen 3, aquí se ha de seleccionar la opción ““Move pages to beginning of file befote shrinking” pulsamos OK y esto reducirá el tamaño del fichero fisico.

Una vez hecho este proceso recomiendo utilizar las siguientes intrucciones para borrar el log y reducir su tamaño.

BACKUP LOG base_de_datos WITH TRUNCATE_ONLY

DBCC SHRINKDATABASE ( base_de_datos , TRUNCATEONLY )

Es probable, bueno, seguro que si borrarais muchos datos el fichero de log os crezca desmesuradamente por lo que es conveniente tener suficiente espacio en disco e ir reduciendo el fichero de log.

RAR desde CMD

http://www.winrar.es/buscar?js=1&query=descomprimir



----------------------------------------------------------------------------------------



Cómo se descomprime desde cmd

[rar/winrar] x [archivo_comprimido] [destino





"c:\archivos de programa\winrar\winrar.exe" x C:\test\soporte.rar D:\SOPORTE

-----------------------------------------------------------------------------------------





Comprimir desde cmd

RAR a opciones archivo.rar archivos_a_comprimir





"c:\archivos de programa\winrar\winrar.exe" a -r D:\comprimir\prueba.rar D:\SOPORTE



RAR a opciones archivo.rar archivos_a_comprimir

jueves, 21 de enero de 2010

e-commerce

http://todoprestashop.com/instalar-prestashop-en-windows

Migracion de LInux

mkdir /root/migracion

export UGIDLIMIT=500

##migrar /etc/passwd

awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /root/migracion/passwd.mig

##migrar /etc/group

awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group > /root/migracion/group.mig

##migrar /etc/shadow

awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) {print $1}' /etc/passwd | tee - |egrep -f - /etc/shadow > /root/migracion/shadow.mig

##migrar /etc/gshadow

cp /etc/gshadow /root/migracion/gshadow.mig



##backup home

tar -zcvpf /root/migracion/home.tar.gz /home


##Pasar

scp -r /root/migracion root@192.168.130.198:/root/



##IMPORTANDO

Bacapear usuario del sistema

mkdir /root/users.bk
cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/users.bk


##Restaurar

cd /root/migracion
cat passwd.mig >> /etc/passwd
cat group.mig >> /etc/group
cat shadow.mig >> /etc/shadow
/bin/cp gshadow.mig /etc/gshadow


## Parado en el /

tar -zxvf /root/migracion/home.tar.gz


reboot

miércoles, 20 de enero de 2010

Generar Password script

#!/bin/bash
n="$1"
[[ -n "$n" ]] || n=12
if [[ $n -lt 8 ]]; then
echo "A password of length $n would be too weak"
exit 1
fi
p=$( dd if=/dev/urandom bs=512 count=1 2>/dev/null \
| tr -cd 'a-zA-Z0-9' \
| cut -c 1-$n )
echo "${p}"

Cuotas de Disco ejemplo ftp-linux

* Instalar la característica de control de cuotas

apt-get install quota


* Indicar las particiones en las que aplicaremos las quotas editando/etc/fstab y añadiendo las opciones usrquota,grpquota

#

/dev/hda5 /home ext3 defaults,usrquota,grpquota 0 2


* Crearemos los archivos de control de quota y reiniciamos las particiones

touch /home/quota.user /home/quota.group
chmod 600 /home/quota.*
mount -o remount /home


* Para a continuación inicializar el mecanismo de cuotas

quotacheck -avugm


La primera vez obtendremos un aviso del tipo...

quotacheck: WARNING - Quotafile //quota.user was probably truncated. Can't

save quota settings...
quotacheck: WARNING - Quotafile //quota.group was probably truncated. Can't

save quota settings...

no hay que preocuparse.

Ahora el comando

quotaon /home



activará por fin la quota

* Editar la quota de los usuarios
Antes de nada deberíais saber que existen dos tipos de cuota:
- Cuotas rígidas: no será posible superar el límite y será negado el acceso.
- Cuotas flexibles: se pueden superar y el usuario sólo recibirá un aviso de

límite excedido. Tras un período de gracia - por defecto 7 días, configurable

por partición - la cuota se volverá rígida.

Manos a la obra, en teoría sólo root puede hacer esto y el comando es el

siguiente:

edquota -u usuario


entonces se nos mostrará una serie de registros con los siguientes campos:

Filesystem (el sistema de archivos en el que se aplica la cuota)
blocks (el número de bloques máximo a ocupar. 0 = ilimitado)
soft (el número de KB máximo a ocupar para cuota flexible. 0 = ilimitado)
hard (el número de KB máximo a ocupar para quota rígida. 0 = ilimitado)
inodes (el número de archivos máximo. 0 = ilimitado)

* Podemos copiar la configuración de un usuario con las cuotas establecidas a

otros con el comando:

edquota -p usuariomodelo usuario

martes, 19 de enero de 2010

Informacion servidor Linux Via Web

1.- instale esto
aptitude install phpsysinfo
2.- pida
http://servidor/phpsysinfo


Si trabaja perfectamente, pero las estadasticas estan en Ingles por defecto.

para llevarlas a espannol solo basta con ir a /etc/phpsysinfo/config.php

y cambiar en la linea 5 $default_lng = "en"; por $default_lng = "es";

viernes, 15 de enero de 2010

Scripts

APACHE RUN
-----------

#!/bin/sh
run=`ps ax | grep /usr/sbin/apache2 | grep -v grep | cut -c1-5 | paste -s -`
if [ "$run" ];
then
echo “Apache is running ”
else
echo "No se encuentra corriendo el servicio de Apache, por favor ejecutar /etc/init.d/apache2 restart" | mail -s "Apache is Not Running" user@empresa.com
fi

CONEXION INTERNET
-----------------

for i in 1 2 3 4 ; do
conect=1
ping -c 3 -q google.com > /tmp/tmp
grep "3 packets received" /tmp/tmp > /tmp/tmp2
var=$(cat /tmp/tmp2 | awk -F, '{print $2 }')

if [ "$var" = "$test" ]; then
echo conectado
break
else
echo no conectado
conect=0
sleep 1
fi
done
if [ conect = 0 ]; then
reboot
else
echo "ok"
fi

jueves, 14 de enero de 2010

Como instalar VMWare Server 2.0.1 en Ubuntu 9.04 Jaunty Jackalope

En este tutorial vamos a ver como se instala y configura VMWare 2.0 en Ubuntu 9.04 Jaunty Jackalope en unos pocos pasos.
Paso 1. Obtener VMWare Server 2.0

Lo primero que tenemos que hacer es descargar la aplicación aquí, nos abre la página de descargas de VMWare seleccionamos Download Now bajo donde dice VMWare Server 2.0.1

Luego aparece una pantalla donde colocamos nuestro usuario y password si ya estamos registrados o creamos un nuevo registro, esto es necesario para obtener el serial que nos pide durante la instalación.

Seleccionamos descargar la imagen TAR (ojo de NO seleccionar la versión RPM) a nuestro escritorio o cualquier carpeta de tu preferencia, recuerda la carpeta ya que la utilizaremos en un momento (es algo pesado aproximadamente 466 MB).
Paso 2. Instalar los Requisitos.

VMWare necesita que tengamos instaladas algunas aplicaciones y librerías, simplemente ejecuta en la consola (Aplicaciones>Accesorios>Terminal) y escribimos lo siguiente:

sudo apt-get install linux-headers-`uname -r` build-essential xinetd


Paso 3. Instalar VMWare 2.0

Luego ve a la carpeta donde descargaste VMWare y ejecuta:

tar xvzf VMware-server-2.0.1-156745.i386.tar.gz

Y luego entramos al directorio descomprimido con:

cd vmware-server-distrib/

Y ejecutamos el script de instalación:

sudo ./vmware-install.pl

Fuentes

http://www.tribulinux.com/tutoriales-como-instalar-vmware-server-20-en-ubuntu-904-jaunty-jackalope.html

SERIAL VMware Server 2 for Linux Operating Systems

Licensing
VMware Server for Windows A0H4J-FAX49-VG5CQ-4T08D
VMware Server for Linux AA4DM-F88FV-U9MA6-4CM25

miércoles, 13 de enero de 2010

SQUID.CONF

http_port 3128 transparent
icp_port 3130

##Utiliza autenticacion modulo ncsa_auth htpasswd /etc/squid/claves usuario###
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/claves



cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB


cache_dir ufs /var/spool/squid 3000 16 256

cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
client_netmask 255.255.255.0



acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255

acl mipc src 192.168.130.155/255.255.255.255
acl red src 192.168.130.0/255.255.255.0
acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

##Utiliza autenticacion creada con htpasswd /etc/squid/claves usuario###
acl password proxy_auth REQUIRED



acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

#Default configuration:
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
http_access allow localhost

http_access allow red password !sitiosdenegados
http_access allow mipc password !sitiosdenegados
http_access deny all

SQUID denegar site--Autenticacion ncsa

Cómo configurar Squid: Restricción de acceso a Sitio de Red.


Introducción.

Denegar el acceso a ciertos Sitios de Red permite hacer un uso más racional del ancho de banda con el que se dispone. El funcionamiento es verdaderamente simple, y consiste en denegar el acceso a nombres de dominio o direcciones Web que contengan patrones en común.

Este manual considera que usted ya ha leído previamente, a detalle y en su totalidad el manual "Como configurar Squid: Servidor Proxy" y que ha configurado exitosamente Squid como servidor proxy.
Software requerido.

Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitará tener instalado al menos squid-2.5STABLE1.
Definiendo patrones comunes.

Lo primero será generar una lista la cual contendrá direcciones Web y palabras usualmente utilizadas en nombres de ciertos dominios. Ejemplos:

www.sitioporno.com
www.otrositioporno.com
sitioindeseable.com
otrositioindeseable.com
napster
sex
porn
mp3
xxx
adult
warez
celebri

Esta lista, la cual deberá ser completada con todas las palabras (muchas de está son palabras obscenas en distintos idiomas) y direcciones Web que el administrador considere pertinentes, la guardaremos como /etc/squid/sitiosdenegados.
Parámetros en /etc/squid/squid.conf

Debemos definir una Lista de Control de Acceso que a su vez defina al fichero /etc/squid/sitiosdenegados. Esta lista la denominaremos como "sitiosdenegados". De modo tal, la línea correspondiente quedaría del siguiente modo:

acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

Habiendo hecho lo anterior, deberemos tener en la sección de Listas de Control de Acceso algo como lo siguiente:

#
# Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl redlocal src 192.168.1.0/255.255.255.0
acl password proxy_auth REQUIRED
acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

A continuación especificaremos modificaremos una Regla de Control de Acceso existente agregando con un símbolo de ! que se denegará el acceso a la Lista de Control de Acceso denominada sitiosdenegados:

http_access allow redlocal !sitiosdenegados

La regla anterior permite el acceso a la Lista de Control de Acceso denominada redlocal, pero le niega el acceso a todo lo que coincida con lo especificado en la Lista de Control de Acceso denominada sitiosdenegados.

Ejemplo aplicado a una Regla de Control de Acceso combinando el método de autenticación explicado en el documento Cómo configurar Squid: Acceso por Autenticación:
Reglas de control de acceso: denegación de sitios.

#
# INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow redlocal password !sitiosdenegados
http_access deny all

Permitiendo acceso a sitios inocentes incidentalmente bloqueados.

Si por ejemplo el incluir una palabra en particular afecta el acceso a un sitio Web, también puede generarse una lista de dominios o palabras que contengan un patrón pero que consideraremos como apropiados.

Como ejemplo: vamos a suponer que dentro de la Lista de Control de Acceso de sitios denegados está la palabra sex. esta denegaría el acceso a cualquier nombre de dominio que incluya dicha cadena de caracteres, como extremesex.com. Sin embargo también estaría bloqueando a sitios como sexualidadjovel.cl, el cual no tiene que ver en lo absoluto con pornografía, sino orientación sexual para la juventud. Podemos añadir este nombre de dominio en un ficheros que denominaremos /etc/squid/sitios-inocentes.

Este fichero será definido en una Lista de Control de Acceso del mismo modo en que se hizo anteriormente con el fichero que contiene dominios y palabras denegadas.

acl inocentes url_regex "/etc/squid/sitios-inocentes"

Para hacer uso de el fichero, solo bastará utilizar la expresión ! en la misma línea utilizada para la Regla de Control de Acceso establecida para denegar el mismo.

http_access allow all inocentes

La regla anterior especifica que se denegará el acceso a todo lo que comprenda la Lista de Control de Acceso denominada denegados excepto lo que comprenda la Lista de Control de Acceso denominada inocentes. es decir, se podrá acceder sin dificultad a www.sexualidadjoven.cl manteniendo la restricción para la cadena de caracteres sex.
Finalizando procedimiento.

Finalmente, solo bastará reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.

service squid restart

Fuente http://www.linuxparatodos.net/portal/staticpages/index.php?page=19-2-como-squid-restriccion-web


Cómo configurar Squid: Acceso por Autenticación.

Autenticación a través del módulo NCSA

Squid puede utilizar el módulo ncsa_auth, de la NCSA (National Center for Supercomputing Applications), y que ya viene incluido como parte del paquete principal de Squid en la mayoría de las distribuciones actuales. Este módulo provee una autenticación muy sencilla a través de un fichero de texto simple cuyas claves de acceso fueron creadas con htpasswd.
Creación del fichero de claves de acceso.

Se requerirá la creación previa de un fichero que contendrá los nombres de usuarios y sus correspondientes claves de acceso (cifradas). El fichero puede localizarse en cualquier lugar del sistema, con la única condición que sea asequible para el usuario squid.

Debe procederse a crear un fichero /etc/squid/claves:

touch /etc/squid/claves

Salvo que vaya a utilizarse un guión a través del servidor web para administrar las claves de acceso, como medida de seguridad, este fichero debe hacerse leíble y escribible solo para el usuario squid:

chmod 600 /etc/squid/claves
chown squid:squid /etc/squid/claves

A continuación deberemos dar de alta las cuentas que sean necesarias, utilizando el mandato htpasswd -mismo que viene incluido en el paquete httpd-2.0.x-. Ejemplo:

htpasswd /etc/squid/claves joseperez

Lo anterior solicitará teclear una nueva clave de acceso para el usuario joseperez y confirmar tecleando ésta de nuevo. Repita con el resto de las cuentas que requiera dar de alta.

Todas las cuentas que se den de alta de este modo son independientes a las ya existentes en el sistema. Al dar de alta una cuenta o cambiar una clave de acceso lo estará haciendo EXCLUSIVAMENTE para el acceso al servidor Proxy. Las cuentas son independientes a las que se tengan existentes en el sistema como serían shell, correo y Samba.
Parámetros en /etc/squid/squid.conf

Lo siguiente será especificar que programa de autenticación se utilizará. Localice la sección que corresponde a la etiqueta auth_param basic program. Por defecto no está especificado programa alguno. Considerando que ncsa_auth se localiza en /usr/lib/squid/ncsa_auth, procederemos a añadir el siguiente parámetro:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/claves

/usr/lib/squid/ncsa_auth corresponde a la localización de el programa para autenticar y /etc/squid/claves al fichero que contiene las cuentas y sus claves de acceso.
Listas y reglas de control de acceso.

El siguiente paso corresponde a la definición de una Lista de Control de Acceso. Especificaremos una denominada passwd la cual se configurará para utilizar obligatoriamente la autenticación para poder acceder a Squid. Debe localizarse la sección de Listas de Control de Acceso y añadirse la siguiente línea:

acl password proxy_auth REQUIRED

Habiendo hecho lo anterior, deberemos tener en la sección de Listas de Control de Acceso algo como lo siguiente:
Listas de Control de Accesos: autenticación.

#
# Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255

acl redlocal src 192.168.1.0/255.255.255.0
acl password proxy_auth REQUIRED

Procedemos entonces a modificar la regla de control de accesos que ya teníamos para permitir el acceso a Internet. Donde antes teníamos lo siguiente:

http_access allow redlocal


Le añadimos passwd, la definición de la Lista de Control de Acceso que requiere utilizar clave de acceso, a nuestra regla actual, de modo que quede como mostramos a continuación:

http_access allow redlocal password

Habiendo hecho lo anterior, la zona de reglas de control de acceso debería quedar más o menos de este modo:
Reglas de control de acceso: Acceso por clave de acceso.

#
# INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow redlocal password

http_access deny all

Finalizando procedimiento.

Finalmente, solo bastará reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.

service squid restart

Rsync incremental backups

#!/bin/sh

#########################################################
# Script to do incremental rsync backups
#########################################################

##################################
# Configure These Options
##################################

###################################
# mail address for status updates
# - This is used to email you a status report
###################################
MAILADDR=mnigro@nexions.com

###################################
# HOSTNAME
# - This is also used for reporting
###################################
HOSTNAME=barracuda

###################################
#Que bacapea
###################################
#BACKUPDIR=/home/mnigro/Documentos/NEXIONS ARCHIVOS/TXT
BACKUPDIR=/home/mnigro/Documentos/vpnnexionsfinal

###################################
# excludes file - contains one wildcard pattern per line of files to exclude
# - This is a rsync exclude file. See the rsync man page and/or the
# example_exclude_file
###################################
#EXCLUDES=example_exclude_file

###################################
#Donde lo deja
###################################
#ARCHIVEROOT=/home/mnigro/rsync
#ARCHIVEROOT=/192.168.xxx.99/backups/test
#ARCHIVEROOT=/192.168.xxx.196/test
ARCHIVEROOT=/home/iomega/SRVBACKUPS






#########################################
# From here on out, you probably don't #
# want to change anything unless you #
# know what you're doing. #
#########################################

# directory which holds our current datastore
#CURRENT=main


# directory which we save incremental changes to
INCREMENTDIR=`date +%Y-%m-%d`

# options to pass to rsync
OPTIONS="--force --ignore-errors --delete --delete-excluded \
--exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -av"

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# make sure our backup tree exists
install -d $ARCHIVEROOT/$CURRENT

# our actual rsyncing function
do_rsync()
{
rsync $OPTIONS $BACKUPDIR $ARCHIVEROOT/$CURRENT
}

# our post rsync accounting function
do_accounting()
{
echo "Backup Accounting for Day $INCREMENTDIR on $HOSTNAME:">/tmp/rsync_script_tmpfile
echo >> /tmp/rsync_script_tmpfile
echo "################################################">>/tmp/rsync_script_tmpfile
du -s $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile
echo "Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile"
Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile
echo "rm /tmp/rsync_script_tmpfile"
rm /tmp/rsync_script_tmpfile
}

# some error handling and/or run our backup and accounting
if [ -f $EXCLUDES ]; then
if [ -d $BACKUPDIR ]; then
# now the actual transfer
do_rsync && do_accounting
else
echo "cant find $BACKUPDIR"; exit
fi
else
echo "cant find $EXCLUDES"; exit
fi