Posts Tagged ‘linux’

Howto: Replica base de datos MySql

Saturday, February 20th, 2010

Esta vez voy a escribir sobre algo que aprendí hace poco y logré hacer dos veces (en un servidor OpenSuse y en uno Debian GNU/Linux), el procedimiento fue el mismo las dos veces, solo que noté un pequeño cambio en asuntos de permisos en ambas distribuciones.

Contando un poco, hay una base de datos llamada “registro” en mysql a la cual varias personas necesitan hacer consultas, la información de la base de datos y el servidor son bien sensibles y o se les puede dar acceso directo a todas las personas, por lo que estuve pensando como puedan hacer consultas sin conectarse directamente a ese servidor, así que me puse a investigar y encontré algo llamado “Replicación de servidor MySql“. Lo que esto hace, es crear una copia idéntica de una base de datos en otro servidor, los registros se van actualizando en el servidor replica de manera automática conforme van entrando datos al servidor maestro o principal.

De esta manera, dejo de preocuparme de accesos no autorizados a la base de datos maestra, bien pude haberlo hecho con un usuario de consulta pero lo que se necesita es que no se acceda a la base de datos de ninguna manera. Así que manos a la obra.

Vamos a partir del supuesto que ya hay una base de datos creada y con información. Lo primero que debemos de hacer es ejecutar el siguiente comando en el servidor maestro

mysqladmin variables -u root -p | grep log_bin

y nos fijamos en la linea log_bin, si esta linea dice OFF, tenemos que activar.

| log_bin | ON |
| log_bin_trust_function_creators | OFF |

Para activar esto, nos vamos al archivo my.cnf (en Debian el archivo esta en /etc/mysql/my.cnf y en OpenSuse /etc/my.cnf y agregamos (o modificamos) las siguientes lineas

  • log-bin=/var/lib/mysql/mysql-bin. #para llevar el registro de modificaciones a la base de datos
  • server-id = 1 #para identificar al servidor maestro
  • binlog-do-db = registro #nombre de la base de datos de la cual se llevara el registro

reseteamos nuestro servidor.

/etc/init.d/mysqld restart

Entramos al CLI del MySql maestro y creamos un usuario con persmisos de replicación para el servidor esclavo ejecutando el siguiente comando en la CLI MySql GRANT

REPLICATION SLAVE ON *.* TO ‘usuario-replica’@'ip-del-esclavo’ IDENTIFIED BY ‘contraseña-replica’;

Cuando ya tenemos esto, necesitamos copiar los registros de la base de datos del servidor maestro al servidor esclavo para que ambos tengan los mismos datos y no exista conflictos al momento de pasar los registros de un lado a otro, la idea es que ambos servidores inicien con la misma información. Ejecutamos el comando (siempre en la CLI MySql del maestro)

FLUSH TABLES WITH READ LOCK;

este comando sirve para enllavar MySql y que no pueda guardarse ningún registro, así que en este punto lo ideal es que nadie ingrese información mientras este proceso esta pasando. Necesitamos unos datos para configurar el esclavo mas adelante, así que (siempre dentro la CLI MySql) ejecutamos

SHOW MASTER STATUS;

y obtenemos algo parecido a

+——————+———-+—————————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+—————————–+——————+
| mysql-bin.000002 | 98 | registro,registro | |
+——————+———-+—————————–+——————+

Los datos que debemos de anotar y no perder son File y Position, que vamos a ocupar en el esclavo.

Copiamos la base de datos maestra al esclavo, se puede hacer con un mysqldump o copiando el directorio de la base de datos en /var/lib/mysql, aquí va al gusto del cliente. Voy a explicar como hacerlo copiando el directorio completo.

Nos ubicamos en /var/lib/mysql del maestro y ejecutamos (según el nombre de ejemplo que puse arriba) en nuestra bash tar -cf registro.tar registro/, pasamos este archivo .tar al esclavo usando scp registro.tar root@ip-del-esclavo:/var/lib/mysql/.

Ahora le toca el turno al esclavo, en el servidor esclavo

  • Nos ubicamos en el directorio /var/lib/mysql y ejecutamos el comando tar -xf registro.tar, podemos dar un ls para asegurarnos que el directorio registro está ahí.
  • Nos vamos al my.cnf del eslavo y buscamos la linea server-id y la dejamos así server-id= 2. Nos aseguramos que la linea bind-address (en Debian) o skip-networking (en OpenSuse) esté comentada, volvemos a la bash y reiniciamos /etc/init.d/mysql restart.
  • Volvemos a la CLI MySql y dentro ejecutamos el comando

    CHANGE MASTER TO MASTER_HOST=’ip-del-servidor-maestro’, MASTER_USER=’usuario-replica’, MASTER_PASSWORD=’contraseña-replica’, MASTER_LOG_FILE=’mysql-bin.000002′, MASTER_LOG_POS=98;

  • Activamos el servidor esclavo (en la CLI MySql) START SLAVE;.

Para terminar, nos vamos a la CLI del MySql maestro y escribimos UNLOCK TABLES; para desactivar el bloqueo de ingreso de registro que hicimos anteriormente.

Con todo esto (si no tuvimos ningún error) debemos de tener funcionando nuestro servidor replica, para asegurarnos que sea así ejecutamos (en la CLI del MySql esclavo) SHOW SLAVE STATUS\G; y buscamos la linea

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Si dicen YES, estamos listo! :) ahora para probar, agregamos un registro en el maestro y hacemos la consulta en el esclavo.

Para posibles fallos, podemos revisar el syslog y si queremos volver a hacer pruebas debemos de eliminar los archivos de log, en el esclavo los archivo relay y el master.info y en el maestro los archivos mysql-bin*

Espero que esto le sirva a alguien, si no, igual me queda de material de consulta a mi :)

Cualquier problemita que tengan y si puedo ayudarles, dejen un comentario y ay vemos que hacemos.

Referencias:

Como hacer una llave SSH

Monday, January 19th, 2009

Una llave SSH tiene la misma o parecida razón de ser que una llave GPG, mientras una llave GPG nos sirve para identificarnos y poner nuestra firma digital. Una llave SSH es utilizada para darle a conocer a un servidor al que queramos acceder remotamente somos nosotros. Al igual que GPG, en llaves ssh contamos con dos archivos, un público que sera el que compartiremos con los servidores ssh para identificarnos y un privado que sera el que nosotros guardamos en nuestro computador y no puede ser copiado.

Generar una llave SSH es un proceso sencillo, para iniciar confirmamos que tenemos instalado openssh-client, en caso de que no, pues procedemos a instalarlo, usando el sistema APT, lo podemos instalar con el comando apt-get install openssh-client.

Una vez instalado esto, nos movemos a la carpeta ssh que normalmente esta ubicada en $HOME/.ssh, una vez ahí, ejecutamos el comando ssh-keygen -t RSA/DSA en dependencia del algoritmo de encriptación que queramos usar. Luego de esto, la primer solicitud que nos hace es escribir el nombre de archivo donde guardaremos nuestra llave, es recomendable aqui dejarlo en blanco presionando un enter para que el genere el nombre del archivo que vendría siendo id_rsa (en mi caso porque use el algoritmo rsa).

n0rm@kicker-desktop:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/n0rm/.ssh/id_rsa):

Luego la segunda solicitud que nos hace es introducir una frase, esta frase se da para brindar mas seguridad al algoritmo, aquí podemos escribir lo que queramos, se recomiendo escribir una frase larga, esta frase será pedida la primera vez que nos conectemos al servidor donde usemos nuestra llave.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/n0rm/.ssh/id_rsa.
Your public key has been saved in /home/n0rm/.ssh/id_rsa.pub.

Terminado esto, nos dice que nuestros archivos públicos y privados fueron creados, como podrán observar el archivo con extensión .pub es nuestra llave publica, que daremos a nuestros servidores remotos. Para que podamos usar nuestra llave ssh, debemos guardar el texto contenido en el archivo .pub dentro del archivo $HOME/.ssh/authorized_keys2 del equipo servidor al que queremos acceder remotamente (en caso de que no exista, creamos el archivo).

Ya ubicada nuestra llave publica pues nos resta hacer la prueba, entrar por ssh al computador y listo.

En defensa de la soberania tecnologica

Monday, October 6th, 2008

La Red de Software Libre y Código Abierto de Nicaragua (RSLCAN) y los Grupos de Usuarios Linux en Nicaragua (GUL-NIC), ambas organizaciones miembros de la comunidad de software libre y código abierto que aglutina a centenares de hombres y mujeres interesados en la defensa de los derechos ciudadanos en entornos mediados por tecnologías de información y comunicación y en la difusión del uso del software libre, hacemos uso de nuestro derecho a la réplica en relación con el artículo titulado “CSE vulnerable”, que fue publicado en El Nuevo Diario el día lunes 29 de septiembre del corriente, y firmado por Angélica Martínez.

Antes que nada, reconocemos y compartimos la preocupación de El Nuevo Diario por mejorar la eficiencia y seguridad de las instituciones, específicamente en lo referente a la información pública que
administran estas entidades, en tanto su uso inapropiado puede redundar en perjuicio para las y los ciudadanos.

En ese sentido, también reconocemos como válido el interés de ese medio escrito en destacar las potenciales vulnerabilidades del sitio de internet del Consejo Supremo Electoral, ya que de materializarse, podrían afectar el proceso electoral en marcha y, con ello, la institucionalidad del país y los derechos políticos de la ciudadanía.

Sin embargo, consideramos que el artículo en cuestión necesita de una mayor profundidad investigativa en su abordaje, considerando que el reportaje sobre temas tan complejos como la informática requiere de una recopilación de notas y consultas a expertos bastante exhaustivas, dado que la verificación de las fuentes de este tipo de reportajes se complica por el uso de insumos de carácter técnico muy especializados.

Para ilustrar lo anterior, señalamos que en el texto del artículo se presentan como verdades fehacientes opiniones de personas desconocidas en el ámbito informático, sin el sustento de evidencias que demuestren su veracidad. Por ello, trataremos de aclarar algunas de ellas. El entrevistado identificado como “Anónimo” asevera: “Yo recomendaría además que [el servidor CSE] no esté en software libre (Linux), digan lo que digan, que Windows es más inseguro, no es así.”

En primer lugar, la creencia de que el software libre es únicamente el sistema operativo Linux responde a una visión obtusa y limitada sobre las nuevas tecnologías de información y comunicación. Hoy en día existen centenares de aplicaciones de software libre y de código abierto que funcionan en diferentes plataformas como Java, FreeBSD y aún en el mismo Windows, que no es un sistema operativo libre.

Por otra parte, afirmar que Windows propietario es más seguro que Linux libre es poco serio y bastante irresponsable. Se han realizado muchas pruebas para comparar la seguridad de los diferentes sistemas operativos existentes, en las cuales las distribuciones de Linux han superado con creces a las de Windows (ver artículo en línea en el sitio de The Inquirer:

http://www.theinquirer.es/2008/03/30/ni_mac_ni_vista_solo_ubuntu_sigue_en_pie.html)

Más adelante, el mismo entrevistado “Anónimo” afirma: “Un hacker que conoce el software, cómo opera y cómo está codificado (característicasque lo hacen libre), tiene más oportunidad de que su ataque tenga éxito. / Yo he visto cómo aquí, en Nicaragua, los hackers se meten a varios lados, y la mayoría de los ataques están donde existe un servidor de software libre.”

La posibilidad de acceder al código fuente de una aplicación de software no significa de ninguna manera que se ofrezca públicamente la llave a los posibles intrusos. La lógica del código abierto más bien facilita la auditoría del software ante posibles fallos o deficiencias y su consecuente modificación para mejorarlo de manera ágil y sencilla.

Sin embargo, “Anónimo” reconoce de manera complementaria que “ahora, la seguridad de la base de datos del CSE debería estar bien definida para sólo consulta y no dejarla abierta, porque el hacker puede meter algo malicioso. / Como administrador, no dejés abierto para que el usuario escriba en un campo con los comodines existentes (caracteres usados en programación).”

Con esa afirmación, el entrevistado reconoce que los problemas de seguridad de la base de datos del CSE derivan de la aplicación utilizada para operativizar los datos y ponerlos a disposición del público a través del servidor libre. Además, reconoce que las fallas de seguridad tienen su origen en el factor humano (administrador de sistemas) cuando este hace configuraciones inapropiadas y deja abierta la puerta, facilitándole el trabajo a cualquier ciber-atacante malicioso”.

Cualquier sistema o aplicación de software en línea puede ser vulnerable, no se puede obviar ese punto, pero la medida de vulnerabilidad del mismo estará siempre dada por el nivel de competencia el que lo administra. Podría ser factible, incluso, que un sistema propietario del tipo Windows sea más seguro que uno con GNU/Linux, si la persona que lo administra basa su trabajo en las buenas prácticas de programación, depuración y administración de sistemas.

La RSLCAN y los GUL-NIC trabajamos y seguiremos trabajando voluntariamente todos los días aportando nuestro grano de arena al desarrollo tecnológico de este país, porque estamos convencidos que Nicaragua tiene el potencial espiritual y humano suficiente para construirse un futuro justo y libre para todas las personas que habitamos en ella.

A lo interno de nuestras organizaciones (RSLCAN, GUL-NIC) cotidianamente discutimos acerca de las implicaciones técnicas y, sobre todo, éticas, de los diferentes ataques realizados a sitios web de Nicaragua; colectivamente, tratamos de inferir las lecciones aprendidas y construimos propuestas para enfrentarlos y evitarlos en el futuro.

Estos ataques afectan no sólo a los sistemas del CSE, también han sido víctimas de los mismos los sitios de otras instituciones de gobierno, organismos no gubernamentales y entidades del sector privado, incluyendo a empresas proveedoras del servicio de internet en Nicaragua.

Consideramos también importante hacer ver que existen otros aspectos de las tecnologías de información y comunicación en Nicaragua que deben ser consultados y debatidos por los expertos y, principalmente, por los usuarios finales, que además de ser los que pagamos los platos rotos también somos los que menos acceso tenemos a la hora de reclamar nuestros derechos.

Tenemos muy claro, sin embargo, que hace falta mucho para alcanzar las metas que nos hemos propuesto y por ello mantenemos abierta nuestra invitación permanente a las personas e instituciones interesadas en las tecnologías de información y comunicación para colaborar y trabajar juntos, en función de intereses comunes y compartidos.

De manera particular, ponemos a disposición de El Nuevo Diario y resto de medios de comunicación nuestras experiencias y conocimientos alrededor de los temas de tecnologías información y comunicación, en aras de enriquecer el debate ciudadano abierto y transparente. Finalmente, invitamos al resto de personas que lean esta comunicación a participar en los debates y actividades de nuestras organizaciones. Pueden contactarnos a través de las direcciones de correo electrónico que aparecen a continuación.

Red de software Libre y Código Abierto de Nicaragua (RSLCAN):

softwarelibre@list2.enicaragua.org.ni

Grupos de Usuarios Linux de Nicaragua (GUL-NIC)
gul-nic@linux.org.ni

Instalando VirtualBox

Saturday, July 19th, 2008

Bueno, desde hace rato había escuchado hablar de virtualbox (software de virtualizacion desarrollada para plataformas i386, propiedad de SUN Microsystem desde febrero 2008) pero nunca me habia animado a instalarlo, tal vez porque no tenia suficiente memoria en mi computador :) (con 256 mi ubuntu siempre me trabajo bien!!) solo que pues ya que compraron mas memoria ya me anime a probar.

Así que me puse a leer unos cuantos lugares (@lex, tuxpepino, ubuntu-es, tuxapuntes) y me decidí a instalarlo, lo primero que hice fue descargar el paquete del sitio de virtualbox (en varios lugares leí que era mejor descargarlo de ahí que usar el que esta en los repos de ubuntu no se porque, solo hice caso)

Así que descargue el paquete de la web oficial de descarga de virtualbox. Luego procedí a instalarlo con

dpkg -i $PAQUETE.deb

en este caso el mio es virtualbox_1.6.2-31466_Ubuntu_hardy_i386.deb

Una vez instalado hay que agregar tu usuario a la lista de grupos de virtualbox con el comando

sudo gpasswd -a $USER vboxusers

y procedemos a descargar y cargar el modulo con

sudo rmmod vboxdrv && sudo modprobe vboxdrv

En este punto (aunque suene bien windoser, fue lo que me corrigió un pequeño problema que tuve) yo recomendaría reiniciar el sistema y debería de estar listo para trabajar.

Después de la instalación y cuando cargaba virtualbox me dio un error de apertura con los puertos usb, según fitoria no tuvo inconvenientes pero yo si, asi que para corregirlos abrimos el archivo

sudo pico /etc/init.d/mountdevsubfs.sh

y descomentamos las lineas (les quitamos el signo numeral que llevan al inicio)

#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount –rbind /dev/bus/usb /proc/bus/usb

luego editamos el archivo

sudo gedit /etc/udev/rules.d/40-basic-permissions.rules

y aqui buscamos la linea

SUBSYSTEM==”usb_device” MODE=”0664″

y cambiamos el MODE de 0664 a 0666. Después reiniciamos mi sistema (aver voy a reiniciar aver que tal me va) y queda funcionando, antes de hacer esto me mostraba un error que me decia que podia usar los puertos usb, ahora ya no me muestra ese mensaje.

Luego viene la configuración de cada maquina virtual, donde asignamos espacio de disco duro virtual a usar, este puede ser fijo o puede ir variando segun le metamos información, yo uso la segunda opción porque me parece mas cómodo, habilitamos las tarjetas de red a usar, cantidad de puertos usb, si vamos a montar imágenes iso o montamos un cd que tengamos en la unidad física, diskets, audio, red, cantidad de ram asignada a la computadora virtual así como el vídeo asignado. También contamos con opción de habilitar RDP en la maquina virtual, así podrá ser controlada por otros usuarios de manera remota y acabo de encontrar esta opción bastante interesante :)

Linex en Nicaragua

Thursday, June 26th, 2008

Hoy visité una escuela de educación publica en Managua llamada Guardabarranco con el fin de entrevistar a las autoridades para un proyecto que estoy desarrollando en mi clase de formulación y evaluación de proyectos.

El proyecto consiste en montar salones de informática con hardware mínimo apoyandonos del proyecto LTSP y usando (obviamente) el sistema operativo gnu/linux.

En esta escuela, desde el año 2005 trabajan con un laboratorio de 8 computadoras corriendo linex 2004, inicio como un proyecto piloto del ministerio de educacion, pero por razones desconocidas no se le dio el seguimiento necesario y ha sido mantenido gracias a todo el esfuerzo del personal administrativo y docente del centro. Debo de decir que este centro en especial según me comentaban, ha mostrado mucho interés en herramientas de software libre, ya que encontraron en linex una herramienta educativa muy desarrollada, muy robusta y completa para los alumnos.

Según me comentaba la persona encargada del laboratorio, desde que iniciaron, han logrado notar cierto aumento en el nivel académico de los alumnos, los alumnos han mostrado mas interés por ir a clases, la matricula anual ha aumentado.

El interés de este colegio por mantener vivo el software libre en los alumnos, me animo a ofrecerme a mi y a gulnic para apoyarlos, como primer tarea, le instalaremos un repositorio local de linex ya que no cuentan con internet, luego de esto, actualizaremos los sistemas de linex 2004 a linex 2006, se les descargara la wikipedia y se le hará una donación para que puedan tener una pagina web.

Sera este el inicio de edulibre-ni? OJALA!

Inicia el SFD08-NI

Saturday, June 7th, 2008

El día de ayer inicio el software freedom day 2008 Nicaragua :) , sip, ayer iniciamos con los preparativos para el que ya sabemos, va a ser el mejor evento del año a nivel mundial :P

Estamos en la parte de definición de sede, de actividades a realizar y empezando a delegar responsabilidades a las personas que nos deseen apoyar, existen distintas maneras de apoyar el evento, puede ser como colaborador en la organizacion, como expositor si esta interesado en brindar una conferencia, como patrocinador, como parte del equipo de marketing, y otras áreas mas.

Les invito a leer el acta de reuniones, y a que participen en esta actividad ya sea en Nicaragua o en el país donde vivan.

Esta reunión también nos ayudo a conocer al nuevo grupo de mandriva Nicaragua, esperamos que se logre estabilizar y crezca :) adelante muchachos que pueden hacer del grupo mandriva una gran comunidad en Nicaragua.

Aquí les dejo un pequeño video sobre la reunión :)

Hello Planet Ubuntu

Friday, June 6th, 2008

This is my first post in ubuntu planet :) and im very happy to write it, im from Nicaragua and work as tech support on ISI, ubuntu user since Dapper Drake.

Want to say hello to all the ubuntu users around the world.

GUL-NIC en FERTEC

Wednesday, June 4th, 2008

Hoy estuvimos en la FERTEC (Feria Tecnológica de Computación) en el auditorio 12 de la UNAN Managua. Seguimos el día de mañana promocionando el uso de software libre y mañana segun nos dijeron los organizadores del evento se espera muchísima mas gente que la de hoy y eso que hoy estuvo movidito.

Se acercó mucha gente que no sabia que era el software libre, que no sabia que era gnu-linux, otra gente que sabia y tenia alguna dudas, asi que estuvimos improvisando charlas sobre lo que era software libre, sobre ubuntu y opensuse, dando algo de soporte tecnico :) también estuvimos vendiendo camisetas y discos.

El día de mañana esperamos hacer unas instalaciones a unas docentes de la UNAN que dijeron que llevarían sus laptops para conocer las maravillosas cosas del software libre en sus compus. También esperamos vender mas camisetas de la comunidad ubuntu, del grupo de usuarios gnu-linux Nicaragua y de debian Nicaragua, discos, stickers y todo lo que sea vendible :P a

Aparte de esto, hoy se dio una conferencia de proxy/gateway impartida por el coordinador principal de opensuse/NUI Nicaragua, alex rodriguez y el dia de mañana tendremos una conferencia por el Ing. Julio Vannini sobre la filosofia del software libre y el manejo del sistema operativo gnu-linux, conferencia que me imagino tambien estara interesante, desde aqui podremos “reclutar” unos cuantos a la comunidad :)

Para mas informacion del evento pueden visitar este link

Efectividad de los antivirus windows

Monday, March 24th, 2008

En mi post anterior, en menos de 10 minutos de haberlo publicado me dejaron un comment con unos links y me dio curiosidad así que me fui ver que era, pues resulta que me abrió una pagina web y empezó a hacer un scan de mi sistema, al terminar me salio un recuadro el cual me decía que el antivirus xp había encontrado dos spyware y 1 toyano y algunos virus en mi sistema :D lo curioso de todo esto es que estoy en gutsy gibbon y no en windows :D

Que les parece? :P puro spam? :P ejejej

Document Freedom Day Nicaragua 2008

Friday, March 14th, 2008

Aquí buscando que inventar nosotros los vagos :P ahora se nos ocurrió celebrar el document freedom day :) Cabe mencionar que este evento se lavara a cabo en mas de 50 países al rededor del mundo y es por esto que hemos decidió sumarnos a esta gran celebración.

Esto se realizara el día 26 de marzo en el auditorio Salomón de la Selva del IES/UNI desde las 8:00 AM, y que haremos este día? pues realizaremos conferencias todo el día, hay conferencias desde manejo de CMS, introducción al FOSS, manejo del sistema gnu/linux, linux terminal server project, asterisk y otras mas.

De igual manera, y sin poder faltar por este día, se hará una presentación sobre la importancia del uso de estándares abiertos en las aplicaciones que usamos, como nos beneficia a todos y las ventajas que nos pueden ofrecer.