lunes, 28 de julio de 2008

Unir dos redes con OpenVPN

Documentación sobre como instalar una VPN con OpenVPN hay bastante en la red, no pretendo repetir los pasos, sino mas bién comentar sobre los detalles importantes a tener en cuenta para que la instalación sea exitosa.
Por lo que pude ver en la instalación, OpenVPN es un producto bastante genérico, estimo que no tiene nada que lo identifique con algúna distribución en particular. Se puede instalar descargando los tar o rpm desde http://openvpn.org, o desde el mismo linux con apt-get install openvpn (debian/ubuntu) o yum install openvpn (red-hat/fedora). Requisito primordial tener ssl instalado. (únicamente se hace un "install openssl" sin tener que configurar nada).
Es muy recomendable hacer un esquema gráfico de las redes que se van a conectar mediante el tunel vpn. En mi caso tuve la necesidad de conectar dos redes, las mismas deben pertenecer a distintas subredes (dentro de cada LAN):
Por ejemplo:
Lan A 192.168.1.0/24 Lan B 192.168.10.0/24
Servidor A: Ip Interna:eth0 192.168.1.10 Servidor B:Ip Interna:eth0 192.168.10.10 Ip Externa: tun0 10.0.0.10 Ip Externa: tun0 10.0.0.15
-----------------------------------------------------------------------------------
editar el archivo:
vi /etc/openvpn/server1.conf
########
local server.local.com
remote server.remoto.com
dev tun0
port 1194
ping 15
comp-lzo
user nobody
persist-key
persist-tun
persist-local-ip
ifconfig 10.0.0.5 10.0.0.10
chroot /etc/openvpn
secret /etc/openvpn/clave.key

En el otro extremo ira el mismo archivo, con las respectivas modificaciones.

En cada extremo de debe ejecutar openvpn con la debida configuración extraida del esquema gráfico.
Luego se hace el ruteo en cada extremo:
Ruteo en A: route add -net 192.168.10.0/24 gw 10.0.0.10
Ruteo en B: route add -net 192.168.1.0/24 gw 10.0.0.15

Si hay problemas con la conectiviad, primero es aconsejable levantar openvpn
en modo verbose:

openvpn --verb 5 /etc/openvpn/server.conf (en cada lado del tunel)

verbose 5 nos permite ver donde esta el error.

Una vez corregido esto se puede hacer un script.


Clave de Seguridad:
Los métodos seguros son:
a) a través de una Entidad Certificadora Externa RSA
b) Generando una clave RSA propia, distrubuyendo en cada extremo.

Conclusion: Una vez que las dos redes quedan conectadas, sentiremos la sensación de estar en una única LAN pudiendo disfrutar de todos los recursos, como ser impresoras, unidades de red compartidas, transferencia de archivos, en fin, no importando donde se encuentren físicamente.
Si la instalación está correctamente configurada, y aun no se logra una comunicación ni siquiera con ping, hay que tener en revisar los firwalls.

lunes, 3 de septiembre de 2007

Openwebmail Instalacion / Configuracion

Un producto bastante serio para ofrecer servicios de Webmail. Openwebmail fácil de instalar y administrar.
Instalación de Openwebmail en Fedora Core 5 y Postfix como MTA.

Comenzamos la instalación suponiendo que tenemos el servidor Linux-Apache-Mysql-Php-Python-Perl andando:

Requisitios:
Openwebmail esta escrito en perl por lo que necesita las siguientes libreriras:

perl-CGI
perl-Compress-Zlib
perl-Text-Iconv
perl-suidperl

INSTALACION.-

1.- Bajar del sitio oficial de openwebmail:

http://openwebmail.org/openwebmail/download/release/

2.- Se recomienda instalar en: /var/www

cd /var/www
tar xvfz openwebmail-XXX.tar.gz

crea un subdirectorio en: /var/www/data/openwebmail

mover la carpeta data/openwebmail a /var/www/html:
mv /var/www/data/openwebmail /var/www/html
o bien crear un link simbólico en /var/www/html:
ln -s /var/www/data/ /var/www/html/data

3.- Realizar las siguientes modificaciónes en el archivo dbm.con
cuya ubicacion esta en: /var/www/cgi-bin/openwebmail/etc
dbm_ext .db
dbmopen_ext none
dbmopen_haslock no

4.- Ejecutar:
/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init

Crea el mapa de tablas que openwebmail usa para su funcionamiento.
Configuraciones y seteos en openwebmail.conf cuya ubicacion esta en:

/var/www/cgi-bin/openwebmail/etc

En caso de tener algún problema o si esta usando alguna distro muy
particular, lea los Readme's que vienen con el producto.



miércoles, 29 de agosto de 2007

Cambiando el Set de Caracteres en la base de datos Oracle

Para cambiar el set de caracteres en la base de datos, es necesario tomar en cuenta algo muy importante: Unicamente podemos cambiar de acuerdo a un orden (subset) que oracle tiene, por ejemplo se puede cambiar de US7ASCII a WE8ISO8859P1 pero no al revés. Si hacemos esta prueba nos da un ora-12712: "new character set must be a superset of old character set"
Si es asi, se debe re-instalar la base de datos.

Con esa recomendación aqui va un ejemplo:

sql> shutdown immediate;


sql> startup mount;
sql> alter system enable restricted session;
sql> alter system set job_queue_processes=0;
sql> alter database open;
sql> alter database character set WE8ISO8859P1; (tambien puede ser "national character set")
sql> shutdown immediate;
sql> startup;

viernes, 10 de agosto de 2007

Oracle: Import/Export de datos desde Linux a Windows y Viceversa

Las utilidades imp / exp que vienen con Oracle, nos dan la posibilidad de realizar backup lógicos en caliente.
Un problema muy frecuente en esta tarea se da cuando tratamos de subir un archivo dmp (exportado en linux) a windows o viceversa.
Inclusive dentro la misma plataforma es dificultoso subir de una versión de oracle a otra.

Una solución, extrayendo de libros y algunas experiencias, es:
a.- suponemos que tenemos dos versiones de oracle: 1 y 2
b.- hago el export de la version 1 con el programa exp que viene en esta versión.
c.- hago el import a la version 2 con el programa imp que viene con la versión 1.

Otra solución y la que dá mejores resultados:
Misma situación y aumentando que tenemos distintas plataformas:
a.- suponemos que tenemos version 1 en linux y version 2 en windows.
b.- desde oracle version 2 en windows creamos dos conexiónes con el net configuration,
una al oracle version 1 en linux, la llamamos oraclelinux y otra al oracle version 2 con el
nombre oraclewin
c.- desde windows hacemos un export conectándonos al oracle version 1 en linux:
ejemplo: exp usuario/contraseña@oraclelinux file=export_01.dmp
(se puede utilizar un script para hacer un backup full, etc)
d.- el backup se guarda en una carpeta de windows.
e.- finalmente se hace un import:
imp usuario/contraseña@oraclewin file=export_01.dmp

Aclaración Importante: Cuando realizamos exports con diferentes versiones de oracle, esto es posible únicamente cuando tenemos una version mayor (por ej. una 9) y hacemos la exportacion desde una menor (ej. 8 ).

lunes, 6 de agosto de 2007

Instalación de Oracle 10g en Fedora Core 6 y Disco SATA

Introducción.-
Partiendo sobre la base de una PC con fedora instalado.
La instalación la hice en una PC con las siguientes características:
Microprocesador: Pentium Dual Core
Motherboard: Asus - Via P4M890
Disco Rígido: SATA - 160 Gigabytes.

Elección de la distribución.-
Sabemos que Oracle cuando habla de linux para intel 386 solo se refiere a Red Hat y Suse. Siguiendo esta linea, pretendí instalar RedHat Enterprice Linux 4, el primer inconveniente que encuentro es con el disco SATA, si bien esta distro tiene los drivers para SAta (via_sata), pues me decia que no existía ningún disco donde instalar. Entre al setup, en fin despues de algunos intentos y leer foros, google, etc, decidi cambiar de distro. Me fui a Fedora Core 5, y me encontré con la misma historia, finalmente para no alargar, me quedé con Fedora Core 6, lo reconoció al disco inmediatamente y pude realizar una instalación estandar, con Gnome y aplicaciones para servidor de base de datos.

Configuración del S.O. para la instalación de Oracle 10g.-
De acuerdo con la documentación de la instalación de Oracle 10g, configuramos los parámentros del kernel:

Editar el archivo /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
ejecutar sysctl -p
para guardar esta configuración.

Editar /etc/security/limits.conf y agregar las siguientes líneas:
*               soft    nproc   2047
* hard nproc 16388
* soft nofile 1024
* hard nofile 6556

Editar: /etc/pam.d/login

session required /lib/security/pam_limits.so

Desabilitar selinux editando: /etc/selinux/config
selinux=disable
Instalar o verificar los siguientes rpm's, ya sea de los cd's de distribución
o bien del sitio http://ayo.freshrpms.net/fedora/linux/6/i386

rpm -Uvh setarch-*
rpm -Uvh --force tcl-*
rpm -Uvh --force libXau-devel-* libXp-*
rpm -Uvh compat-db-*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh compat-libf2c-34-*
rpm -Uvh compat-gcc-34-*
rpm -Uvh libaio-*
rpm -Uvh compat-gcc-34-c++-*
rpm -Uvh compat-libstdc++-296*
rpm -Uvh compat-libgcc-296*

Librerias motif:
rpm -Uvh openmotif21-2.1.30-14.i386.rpm


Crear usuarios y grupos.
groupadd oinstall
groupadd dba
groupadd oper

useradd -g oinstall -G dba oracle
passwd oracle
Crear los subdirectorios donde vamos a instalar oracle
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
Editar el archivo /etc/redhat-release
reemplazar por: redhat-4

Editar el .bash_profile del usuario oracle y agregar las sgtes. lineas:
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=TSH1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

Instalación.-
loguearse como oracle
comprobar los seteos como ser ORACLE_HOME, etc
$ set | more
arrancar xwindows
$ startx
Iniciar una sesión de terminal
Comenzar la instalación desde el path de instalacion:
$ ./runInstaler