pkg-get en Solaris

#pkg-get en Solaris

(manejador de paquetes para solaris)

Como primer paso le recomiendo se den una vuelta por

http://www.bolthole.com/solaris/pkg-get.html Que es el sitio oficial para el manejador de paquetes que utilizaremos llamado

pkg-get

Usando pkg-get Y el repositorio blastwave podremos instalar software en nuestro Solaris/Open Solaris de manera similar a debían.

Primer Paso instala pkg-get

#pkgadd -d http://www.blastwave.org/pkg_get.pkg

Aceptamos todas las preguntas que nos hará el instalador,el repositorio a usar es www.blastwave.org que contiene 1700 paquetes de sofrware en su mayoria open source todo este repositorio trabaja bajo /opt/csw Y el Fichero de configuracion de pkg-get se encuentra en

/opt/csw/etc/pkg-get.conf

Definimos nuestro mirror a usar

url=http://mirrors.sunsite.dk/csw/stable

Si estamos atrás de un Firewall o algun Proxy

configuramos las lineas correspondientes

# If you are behind a firewall, set one of these as appropriate

#ftp_proxy=http://your-proxy:8023

#http_proxy=http://your-proxy:8023

#export http_proxy ftp_proxy

Guardamos y como primer paso

#/opt/csw/bin/pkg-get -U

Y es todo a instalar el software que necesitemos

Se me ocurre instalar

/opt/csw/bin/pkg-get -i nano

/opt/csw/bin/pkg-get -i bash

/opt/csw/bin/pkg-get -i vim

En el siguiente tutorial sera configuracion de postfix en Solaris Usando Mysql para la BD de usuarios

Dudas a [email protected]/[email protected]

Replicacion de Mysql en FreeBSD Master To Slave

Replicacion de Mysql en FreeBSD

Master To Slave

El punto es.. mantener tus B.D sincronizanadas y no tener perdida de datos , y tener nuestros backups al día.

Manos a la Obra

Requerimientos mínimos

Tener Acceso root tanto en el sistema como en las base de datos.

Servidor 1 FreeBSD 6.3 (será Nuestro servidor Master)

Mysql Server mysql-server-5.0.51a (Corriendo N cantidad de Base de datos)

Servidor 2 FreeBSD 7.0

Mysql Server mysql-server-5.0.67_1 (Sin Bases de datos)

La teoría es replicar las bases de datos del Servidor 1 al Servidor 2 Y ya en el servidor 2 sacarle un backup a todas nuestras base de datos, para no sobre cargar nuestro servidor 1 que se encuentra en producción.

Aquí pueden replicar 1 base de datos o todas las base de datos mi caso es el segundo.

Les recomiendo se lean http://dev.mysql.com/doc/refman/5.0/es/replication.html antes de comenzar todo.

y si por algun motivo algo no les funciona revisen de nuevo sus configuraciones en ambos servidores por que si no pasaran horas tratando de dar con el problema y resultara que se les fue algún carácter raro en los archivos de configuración de mysql “Experiencia Personal” , al mejor cazador se le va la liebre no?.

Manos a la obra.

En nuestro Servidor 1 Que es nuestro servidor Master de Mysql daremos de alta

un usuario que nos servira para replicar las bases de datos con esta sentencia

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘replicador’@’host_esclavo’ IDENTIFIED BY ‘mi_contraseña’;

Donde replicador=Es el usuario que nos permitira hacer la replica de nuestras bases de datos

hosts_esclavo=la ip o el host de nuestro servidor esclavo

mi_contraseña= Sera igual a la contraseria del usuario que replicara las bases de datos.

En nuestro Servidor 2 Ingresamos la misma sentencia

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘replicador’@’host_master’ IDENTIFIED BY ‘mi_contraseña’;

El Unico cambio aqui sera el host_master que sera igual a la Ip o el nombre del host.

Siguiente paso configuración de los servidores de Base de Datos tanto en el Servidor 1 (Master) Como en el Servidor 2 (Slave)

Editaremos En el Servidor1 (Master) El archivo my.cnf , si usamos Linux/Unix/Windows usaremos nuestro editor de texto preferido.

nano /var/db/mysql/my.cnf

Agregaremos estas opciones

[mysqld]

server-id = 1

log-bin = /var/log/mysql/bin.log

Donde server-id es un numero con el que se identificare al servidor maestro.

La segunda linea log-bin es la ruta de la bitacora binaria, Asegurarnos que ese directorio exista y que el usuario mysql sea el propietario y tenga

permisos de escritura sobre el mismo directorio.

#mkdir /var/log/mysql; chown mysql.mysql /var/log/mysql

Para Nuestro Servidor Esclavo o Slave, añadiremos unas lineas extras al archivo de configuración de my.cnf

Buscamos la sección

[mysqld]

server-id= 2

master-host = host_maestro,com # o la IP del servidor maestro

master-port = 3306

master-user = replicador

master-password = mi_contraseña

log-bin = /var/log/mysql/bin.log

log-bin-index = /var/log/mysql/log-bin.index

log-error = /var/log/mysql/error.log

relay-log = /var/log/mysql/relay.log

relay-log-info-file = /var/log/mysql/relay-log.info

relay-log-index = /var/log/mysql/relay-log.index

Y ahora que ? Ya tenemos las configuraciones tanto en el servidor 1 (master) como en el Servidor2(Slave)

El siguiente paso sera copiar todas las BD del Servidor 1 Hacia el Servidor2

Pero si el servidor Master esta en produccion si sacamos un respaldo de nuestro servidor master

y lo llevamos al servidor slave, podrian existir inconsistencias en nuestras base de datos

Para eso tendremos que prevenir todo eso.

En nuestro servidor master hacemos esto

mysql> SHOW VARIABLES LIKE ‘max_connections’;

+—————–+——-+

| Variable_name | Value |

+—————–+——-+

| max_connections | 100 |

+—————–+——-+

mysql> SET GLOBAL max_connections = 0;

Lo que hicimos es indicarle a mysql que ya no podran realizarse conexiones a la BD y solo se reserva

1 sola conexion que es para root .

Y procedemos a sacar el dump de todas las bases de datos.

# mysqldump –user=root –password=mi_root_pwd –extended-insert –all-databases –master-data > /tmp/backup.sql

Necesita explicacion? .

Procederemos a llevarnos nuestro backup de nuestras BD hacia el servidor esclavo ya sea usando

scp or ftp como sea de nuestro agrado tranferirlas.

Ok Cuando Establecimos las conexiones a 0 y al sacar el dump de eso

Nos agrega unos datos que probablemente necesitaremos mas adelante.

####

— Position to start replication from

CHANGE MASTER TO MASTER_LOG_FILE=’bin.00046′ ;

CHANGE MASTER TO MASTER_LOG_POS=8827 ;

###

O podemos obtener estos datos en el servidor master

En el servidor maestro visualizamos el estado del servidor:

mysql> SHOW MASTER STATUSG

File: bin.00046

Position: 8827

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

Bueno nos quedamos en la parte de mover el backup hacia nuestro servidor esclavo y restauraremos

todas las bases de datos con la siguiente sentencia.

Siguiente paso

#mysql –user=root –password=mi_root_pwd < /tmp/backup.sql

Si no nos da ningun error eso quiere decir que todas nuestras bases de datos fueron restauradas en nuestro

servidor slave.

Iniciamos con esta sentencia nuestro servidor SLAVE no olviden regresar a 100 la opcion de max_connection.

#mysql>CHANGE MASTER TO MASTER_HOST=’ip-maestro’,MASTER_USER=’slave’, MASTER_PASSWORD=’slaveabdul’,MASTER_LOG_FILE=’bin.00046′, MASTER_LOG_POS=8827;

#mysql> START SLAVE;

Aqui si todo esta bien se empezaran a sincronizar los ultimos cambios del servidor master

al servidor slave.

Facil no?

Ahora si necesitamos sacar un respaldo en nuestro servidor Slave

Solo basta con parar la replicacion

mysql> STOP SLAVE;

Y sacar el dump de cualquier base de datos y luego volver a arrancarlo

mysql> START SLAVE;

O podemos sacar respaldos Automatizados, mediante este script en bash.

#!/bin/sh

fecha=`date +%Y%m%d`

mysqladmin –user=root –password=mi_root_pwd stop-slave

mysqldump –user=root –password=mi_root_pwd –lock-all-tables –all-databases > /roa/mysql/respaldo-$fecha.sql

mysqladmin –user=root –password=mi_root_pwd start-slave

Se le pueden agregar mas opciones pero ya es cuestion de uno. Si son algo paranoicos podremos hacerlo sobre ssh-tunels para Mysql aqui en un tutorial que anteriormente escribi espero que le sirva

Dudas a [email protected],[email protected]

Mysql en FreeBSD

Si ya se que hay infinidad de manuales de como instalar Mysql En FreeBSD pero uno mas no vendrá nada mal.

Mysql 5.0 en FreeBSD 6.3

cd /usr/ports/databases/mysql50-server/

cd /usr/ports/databases/mysql51-server/

cd/ /usr/ports/databases/mysql40-server/

cd /usr/ports/databases/mysql41-server/

Que versión seleccionar? eso dependera de nuestros requerimientos.

En Nuestro caso seleccionaremos la rama 5.0

# cd /usr/ports/databases/mysql50-server/

make install clean

Siguientes paso

mysql_install_db –user=mysql

#Asignamos Permisos

chown -R mysql /var/db/mysql/

chgrp -R mysql /var/db/mysql/

Agregamos a nuestro rc.conf “mysql_enable=”YES”

Para que cuando reiniciemos nuestro server se levante sin ningun problema.

echo ‘mysql_enable=”YES”‘ >> /etc/ rc.conf

Iniciamos Mysql

/usr/local/etc/rc.d/mysql-server start

El primer paso es Asignar el Password de root de la Base de Datos

/usr/local/bin/mysqladmin -u root password ‘yournewpassword’

En el directorio /usr/local/share/mysql

Tenemos estos archivos

-r–r–r– 1 root wheel 4877 Oct 26 05:40 my-large.cnf

-r–r–r– 1 root wheel 4884 Oct 26 05:40 my-medium.cnf

-r–r–r– 1 root wheel 2454 Oct 26 05:40 my-small.cnf

De nosotros dependera saber cual .cnf seleccionar y moverlo a /var/db/mysql

#mv my-large.cnf /var/db/mysql/my.cnf

Y luego reiniciamos Mysql y ya tiene que estar leyendo el fichero de configuracion de my.cnf

Y es donde configuraremos mas adelante las opciones de nuestro servidor de base de datos.

#/usr/local/etc/rc.d/mysql-server restart

Instala HSBC CPI Credit Card En FreeBSD

Segun el PDF que dan en HSBC se pueden Linux / Solaris/ Windows

http://leadingedgescripts.co.uk/hsbccreditcardslinux.php

Dare por echo que ya esta funcionando cgi-bin en su servidor web

y que ya tenemos habilitado el certificado web que nos piden en hsbc junto con sus permisos correspondientes.

Pero siguiendo todo esos pasos no funciona Y entonces hay que habilitar el soporte de “Linux Binary Compatibility” en FreeBSD

##

bash-2.05b$ ldd OrderHash.e

OrderHash.e:

ELF interpreter /lib/ld-linux.so.2 not found

OrderHash.e: signal 6

bash-2.05b$ ldd Results.e

Results.e:

ELF interpreter /lib/ld-linux.so.2 not found

Results.e: signal 6

bash-2.05b$ ldd TestHash.e

TestHash.e:

ELF interpreter /lib/ld-linux.so.2 not found

TestHash.e: signal 6

bash-2.05b$ file *.e

OrderHash.e: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

Results.e: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

TestHash.e: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

bash-2.05b$

Y nuestro servidor es FreeBSD

#kldload linux

Agregamos a /etc/rc.conf

linux_enable=“YES”

Instalar el Port

cd /usr/ports/emulators/linux_base-fc4

make install distclean

Copiar

cp libCcCpiTools.so /usr/lib

correr el comando

ldconfig

Luego nuevamente Verificar

ldd *.e

OrderHash.e:

libCcCpiTools.so => /usr/lib/libCcCpiTools.so (0x28067000)

libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x28079000)

libm.so.6 => /lib/obsolete/linuxthreads/libm.so.6 (0x280be000)

libc.so.6 => /lib/obsolete/linuxthreads/libc.so.6 (0x280e4000)

libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28203000)

/lib/ld-linux.so.2 (0x2804a000)

Results.e:

libCcCpiTools.so => /usr/lib/libCcCpiTools.so (0x28067000)

libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x28079000)

libm.so.6 => /lib/obsolete/linuxthreads/libm.so.6 (0x280be000)

libc.so.6 => /lib/obsolete/linuxthreads/libc.so.6 (0x280e4000)

libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28203000)

/lib/ld-linux.so.2 (0x2804a000)

TestHash.e:

libCcCpiTools.so => /usr/lib/libCcCpiTools.so (0x28066000)

libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x28078000)

libm.so.6 => /lib/obsolete/linuxthreads/libm.so.6 (0x280bd000)

libc.so.6 => /lib/obsolete/linuxthreads/libc.so.6 (0x280e3000)

libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28202000)

/lib/ld-linux.so.2 (0x28049000)

#Por ultimo checar nuestros sample.html (previamente ya editado

y configurado)

ssh-tunels para mysql

Requerimientos tener acceso ssh en ambos servidores

Servidor A (Servidor Donde Se encuentran las BD)

Servidor B (Servidor el cual se conectara remotamente a la BD del servidor A)

Si si ya se que se puede sin necesidad de estos tuneles, Pero soy algo paranoico , así que este es mi tutorial y a alguien mas le servirá.

#En el servidor B

Ejecutamos esta comando

bash# ssh -N -f -L 3307:localhost:3306 [email protected] -p 3313 < El proceso se ira a background

Password:

bash# mysql -P 3307 -u root -h 127.0.0.1 -p < Aqui solo nosotros nos conectaremos a el puerto que tenemos en el tunel que fue 3307 y listo

Ya lo demás se lo dejo a su imaginación

Dudas , Comentarios , Sugerencias a [email protected]

Script para crear un NAT entre dispositivos


#!/bin/sh

  1. Definiendo interfaces interna (lan), externa (inet)
  2. y programa IPTABLES (iptables)
  3. Activando reenvio de paquetes en el kernel

echo “1” > /proc/sys/net/ipv4/ip_forward

  1. Activando medidas de direccionamiento dinamico

echo “1” > /proc/sys/net/ipv4/ip_dynaddr

lan=eth0

inet=ppp0

NETZ=“192.168.100.0/24”

IPTABLES=“/sbin/iptables”

$IPTABLES -F

$IPTABLES -P INPUT ACCEPT

$IPTABLES -F INPUT

echo -e “---------------------------------------------------------------n”

echo -e “NAT en el dispositivo $inet para la red:$NETZ activo!”

$IPTABLES -t nat -A POSTROUTING -o $inet -s $NETZ -j MASQUERADE

echo -e “---------------------------------------------------------------n ”

Sqlninja

Bueno hace unos días andaba “auditando” por decir asi unos servidores con la ayuda de Crypkey(solo sus nicks para proteger su identidad jaja ).

Había escuchado de esta herramienta, Sqlninja pero no había tenido la oportunidad de aprenderla al 100 %.
Asi que todo el fin de semana me la pase jugando con esta herramienta (uno nunca cuando puede ser util y solo para checar la seguridad de nuestros servidores y tratar de aprender ataques y como resolverlos).
A todo esto ya esta la version 0.2.3 que trae una nueva cosa , siempre y cuando tengamos metasploit instalado en nuestra misma computadora, la podremos usar y hacer la chamba sucia.
Aqui les dejo la url
Y revisen la documentación si tienen duda.
Trataremos de tener actualizado este blog