sábado, 26 de diciembre de 2009

Script y reglas Firewall con Iptables


Les dejo un script de configuración para las reglas de un firewall o cortafuegos con iptables. Las fundamentaciones pueden encontrarlas en las referencias y satisfacer sus necesidades particulares. Cualquier mejora pueden dejar sus comentarios para enriquecer el script.

#!/bin/sh
# /etc/rc.d/rc.firewall
# GNU/Linux FIREWALL con Iptables

f_start() {
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

# A nuestro firewall tenemos acceso total desde nuestra IP
# iptables -A INPUT -s 127.0.0.1 -j ACCEPT

# Establecemos politicas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Permitir todo a Localhost
iptables -A INPUT -j ACCEPT -i lo

# Enmascaramiento de la red local
# activamos el BIT DE FORWARDING
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE


# www
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# mail (25, 110, 143)
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
# ftp
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
# ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# xdmcp
iptables -A INPUT -p udp --dport 177 -j ACCEPT
# cups/lpd
iptables -A INPUT -p udp --dport 631 -j ACCEPT
# Reglas específicas por ejemplo: bittorrent
# iptables -A INPUT -p tcp --dport 6881:6883 -j ACCEPT

# apply rules
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Firewall iniciado..."
}

f_stop() {
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "Firewall parado..."
}

f_status() {
iptables -nL
}

f_restart() {
fw_stop
fw_start
}

case "$1" in
'start')
f_start
;;
'stop')
f_stop
;;
'status')
f_status
;;
'restart')
f_restart
;;
*)
echo "Usage: $0 start|stop|restart|status"
esac


Referencias:

domingo, 13 de diciembre de 2009

Salvar y Restaurar Base de Datos en MySQL de forma rápida y sencilla


En un sistema Debian la ubicación del directorio de datos de MySQL por omisión es en /var/lib/mysql . Para salvar la(s) base(s) dato(s) realizamos los siguientes pasos:

Salvar:

1. Paramos el servicio MySQL con:
/etc/init.d/mysql stop

2. Compiamos el directorio de datos a un directorio de respaldo:
cp -r /var/lib/mysql/ /algun_dir/
ó lo comprimimos mediante:
tar czf mysql-backup.tar.gz /var/lib/mysql
3. Iniciamos el servicio:
/etc/init.d/mysql start

Restaurar:

1. Paramos el servicio MySQL con:
/etc/init.d/mysql stop

2. Restauramos la copia de los datos
cp /algun_dir/respaldo-mysql/* /var/lib/mysql
3. Importate restaurar el dueño y el grupo a los archivos de datos para tener los accesos correctamente. Por omisión es el usuario mysql el encargado del servicio.
chown -R mysql:mysql /var/lib/mysql
4. Iniciamos el servicio:
/etc/init.d/mysql start

Les dejo un documento interesante sobre Bases de datos en MySQL donde el objetivo principal es: "adquirir las habilidades y conocimientos de MySQL necesarios para utilizar y administrar este SGBD (Sistema Gestor de Bases de Datos)".

En el punto Copias de seguridad abordan con más profundidad este tema.

Referencias:
Base de datos en MySQL
Activar innoDB en Mysql Server

jueves, 10 de diciembre de 2009

Serie sobre cómo construir un datawarehouse


Cuando estamos investigando en el tema de Business Intelligence o Inteligencia de negocio y poco a poco nos damos cuenta que hay muchas temáticas, nos suele surgir preguntas como, ¿Por dónde empezar? .

Existen muchos sitios que aborden este mundo. Una forma fácil de entender los principales conceptos y herramientas que dispone la inteligencia empresarial, es en el siguiente blog: Business Intelligence fácil

Una sección recomendada es: Serie sobre cómo construir un datawarehouse.

En este post les dejo la sección en formato pdf para que la puedas consultar offline. Espero que disfruten del buen contenido del blog.

Referencias:
Artículos sobre Serie DWH (web, pdf)

miércoles, 9 de diciembre de 2009

SQL Server 2005, Limpiar base de datos y restablecer columnas identity, todo en 6 lineas!


Una manera sencilla para vaciar nuestras base de datos en SQL Server 2005 se muestra a continuación. El artículo original se encuentra en DotNetSlackers.

/*Disable Constraints & Triggers*/
exec sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'

/*Perform delete operation on all table for cleanup*/
exec sp_MSforeachtable 'DELETE ?'

/*Enable Constraints & Triggers again*/
exec sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'

/*Reset Identity on tables with identity column*/
exec sp_MSforeachtable 'IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TableHasIdentity'') = 1 BEGIN DBCC CHECKIDENT (''?'',RESEED,0) END'

Referencias:
SQL Server 2005, Clean your Database Records & reset Identity Columns, all in 6 lines!

lunes, 7 de diciembre de 2009

Configurar JDK 6 por default en GNU/Linux Debian


A veces suele ocurrir que tenemos en nuestro sistema más de una máquina virtual para Java y necesitamos establecer una por omisión. De esta manera podrás establecer el JDK (Java Development Kit) de Sun Microsystems:

update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jdk/jre/bin/java" 1

update-alternatives --set java /usr/lib/jdk/jre/bin/java

Comprobamos con la siguiente instrucción:

java -version

Referencias:

domingo, 6 de diciembre de 2009

Configuración sitio web principal en Apache


Para establecer un sitio web por omisión en el servidor web Apache utilizaremos la directiva RedirectMatch. Para ello creamos un fichero de configuración en el directorio /etc/apache2/conf.d
, por ejemplo: websitedefault.conf

# Web Site default Apache configuration
# Configuración Sitio Web por omisión en Apache

Alias /website /var/www/website/
RedirectMatch ^/$ /website

Options +FollowSymLinks
AllowOverride None

Order Deny,Allow
#Deny From All
#Allow From 127.0.0.0/255.0.0.0 ::1/128
Allow From All

Referencias:
Apache Module mod_alias