Mysql Replication
Aqui voy a explicar como poder montar un sistema de maestro-esclavo(s) en mysql. La idea es que hay un servidor principal, que es en el que se modifican los datos y los esclavos solo estan ahi para tenerlo todo duplicado, esto es perfecto para hacer copias de seguridad. Si la idea es tener transferencia de datos bidireccional, hay que montar un "MySQL Cluster"
La replicacion funciona por medio de los binary log de mysql, asi que lo primero sera configurar correctamente el servidor maestro. Asi que añadimos estas opciones en el fichero my.cnf si aun no estan.
[mysql] #Activamos el log binario log-bin=mysql-bin #Establecemos un id para el servidor, el maestro SIEMPRE sera 1 server_id=1 #Esto ayuda por si el master tiene un cuelgue y no haya problemas en la replicacion al volver a arrancarlo sync_binlog=1 #Si trabajamos con INNODB, hay que activar esto innodb_flush_log_at_trx_commit=1
IMPORTANTE: Hay que comprobar que la linea skip-networking no este puesta en el master, ya que sino no abrira el puerto
PHP5 eAccelerator
Hacia tiempo que queria poner esto, pero nunca me he puesto. eAccelerator es un modulo de php que compila y carga en memoria las aplicaciones php, y con esto consigue que haya una mejora de respuesta y descarga bastante el servidor. Aqui os explico como instalar eAccelerator con PHP5 en una debian.
Lo primero que hay que hacer es descargarse la ultima version de eAccelerator, tambien necesitaremos en el server las utilidades de desarrollo de php
apt-get install php5-dev
La instalacion es realmente muy sencilla, solo tenemos que descomprimir, compiler, instalar y configurar.
- Descomprimimos
tar xvfj eaccelerator-0.9.5.tar.bz2- Compilamos
cd eaccelerator-0.9.5 phpize ./configure make
- Instalamos (nos pondra el modulo en la carpeta de modulos de php)
62d325ab54ae209efd61e06c4a916a87013
hacker::quiz
Ya ha acabado la bkp 7ª edicion, y para quien le interese aqui os cuelgo aqui el codigo del hacker::quiz de este año. Realmente es muy sencillo, pero aun asi os colgare las soluciones.
- Level1
- Aparentemente no parece que hay ningun error de programacion, pero si pruebas de buscar los .bak, *~... encuentras el fichero login.php~ y en el aparece la contraseña en md5. Con un cracker de md5 como por ejemplo lcrack. En pocos minutos saldra la contraseña del nivel.
- Level2
- Aqui hay que fijarse que en el codigo hay un "src=javascript" y que el codigo bueno esta en el fichero javascript. Aqui se una un algoritmo de encriptacion super sencillo, que se puede desencriptar facilmente cambiando la funcion generatePass para sacar la contraseña.
MRTG Total
MRTG es una utilidad para monitorizar y generar graficos por medio de snmp. Para los que tengan como yo limite de consumo de trafico mensual, va muy bien tener un contador del total de consumo por dias y por meses.
Lo primero que tenemos que hacer es instalar los paquetes necesarios:
apt-get install mrtg libgd-graph-perl libgd-graph3d-perl snmpd
Una vez instalado, configuramos MRTG (/etc/mrtg.cfg):
################################################# # Multi Router Traffic Grapher -- Sample Configuration File ################################################# # This file is for use with mrtg-2.5.4c # Global configuration WorkDir: /var/www/mrtg #General title Title[^]: Traffic Analysis for Atlantis #We dont need Ipv6 EnableIPV6: no #Count in bits, grow from right to left, log unknow data as zero Options[_]: bits,growright,unknaszero #Target to monitor Target[atlantis]: 2:atlantis@localhost #Page title Title[atlantis]: Traffic Analysis for Atlantis PageTop[atlantis]: <H1>Our 100mbps link to the outside world</H1> #100mb MaxBytes[atlantis]: 12500000 WithPeak[atlantis]: ymw AbsMax[atlantis]: 1000000000000 #MRTG Total config (Title, Unit = M(Bytes)) #-#Total[atlantis]: Traffic Totals for Atlantis #-#Total-Unit[atlantis]: M #-#Total:Ratio[atlantis]: yes
Configurar SNMP (/etc/snmp/snmpd.conf):
com2sec local localhost atlantis com2sec atlantis 66.111.52.100 atlantis group MyROGroup v1 local group MyROGroup v1 atlantis view all-nibs included .1 80 access MyROGroup "" v1 noauth exact all-nibs none none syslocation altantis syscontact Root
Configuramos iptables para que no puedan acceder al SNMP desde fuera
#SNMPD Solo Local $IPTABLES -A INPUT -s 127.0.0.1 -p tcp --dport 199 -j ACCEPT $IPTABLES -A INPUT -s 127.0.0.1 -p udp --dport 161 -j ACCEPT $IPTABLES -A INPUT -s 85.17.1.127 -p tcp --dport 199 -j ACCEPT $IPTABLES -A INPUT -s 85.17.1.127 -p udp --dport 161 -j ACCEPT $IPTABLES -A INPUT -s 0/0 -p tcp --dport 199 -j DROP $IPTABLES -A INPUT -s 0/0 -p udp --dport 161 -j DROP
Descargamos mrtg_total y lo descomprimimos:
tar xvfj mrtg_total.tar.bz2 cd mrt_total unzip mrtg_total.zip
El script importante es mrtg_total.pl, y hay que añadirle en la primera linea del fichero #!/usr/bin/perl
Ahora añadimos al crontab que ejecute mrtg_total, por ejemplo cada 3 horas (/etc/crontab):
Multiples proyectos con trac y svn usando HTTPS
Voy a explicar como montar el sistema de gestion de proyectos trac y subversion usando https para trabajar con subversion. Yo lo he montado en una debian usando apache2, asi que lo primero que necesitamos es instalar todo lo necesario
apt-get install trac subversion apache2 subversion libapache2-svn libapache2-mod-python2.3
Una vez descargado e instalado creamos el certificado necesario para usar tanto trac y subversion bajo https. Entra en el directorio /etc/apache2/ssl y ejecuta lo siguiente:
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.org openssl rsa -in server.key.org -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Ahora ya tenemos listo los certificados, asi que ahora solo nos queda configurar el apache. Yo he creado un trac.dominio.ext y un svn.dominio.ext para hacer esto, pero esto va a gusto de cada uno. Yo como uso dos subdominios distintos, lo tengo en ficheros separados.



