Entradas

Mostrando entradas de julio, 2012

MikroTik QoS Script generator

Imagen
Esta es una de las scripts como de las que me gustan a mi, esas que hacen la vida mas fácil del administrador de sistema. En este caso tenemos una herramienta llamada MikroTikTools que se encarga de generar la configuración necesaria para crearnos una árbol genérico de marcado y encolado que permite hacer una QoS de manera sencilla. Como máximo el script configura 3 interfaces (algo que se puede solucionar con un Copy & Paste de la parte de la configuración relacionada con la interface), despues se define el total del download rate y cual es la interface de subida. Se requiere elegir los protocolos con los cuales queremos hacer trabajar el QoS y también algunas opciones de configuración como backups y eliminar la configuración anterior. Puede ser utilizado desde el siguiente link . EDITADO: La pagina web a la que se dirige esta entrada a dejado de funcionar. Lo actualizaré de nuevo cuando este disponible.

BackupROS: Haciendo backups centralizados

Una nueva herramienta llamada BackupROS que recientemente fue publicada en el foro de MikroTik permite crear y manejar backups de MikroTik RouterOS . Los backups quedán almacenados en un servidor y además permite que se envíen por correo electrónico. Los pasos de instalación están en la Wiki MikroTik y es simple la misma. Es multiplataforma por lo que se puede correr en Windows y Linux sin problemas. Está herramienta al parecer esta escrita por alguien de Argentina (Nahuel Ramos) porque es de donde está registrado el autor del post en el foro. Vía: MikroTik .

Portando OpenWRT a un Mikrotik RouterBoard RB133C

Imagen
Hace unos días he conseguido ejecutar OpenWRT en un Mikrotik RouterBoard RB133C siguiendo las instrucciones que podemos leer en http://rb1xx.ozo.com/doku.php Esto nos puede ser útil si hemos perdido la licencia porque hemos formateado la NAND y no hemos hecho copia de la misma, tal y como ha sido el caso, y pagar mas de 30 Dolares por una licencia para esta placa hoy en dia ya no tiene sentido. Así que nos ponemos manos a la obra. En mi caso he compilado todo desde cero con una version mas actualizada de OpenWRT de la que existe en la Web nombrada anteriormente, ya que necesitaba el driver ath5k del kernel y no lo encontraba en ningun paquete precompilado de OpenWRT ya que tiene que coincidir con la versión del kernel. Guia rápida Para los impacientes aquí tenemos una guía rápida. Conectamos el router por el puerto serie a nuestro PC a 115200, 8N1. Actualiza la versión de firmware del RouterBOOT booter, el gestor de arranque de estos routers, con una ver
Imagen
Hace unos dias adquiri un Mikrotik RB751U-2HnD y aqui teneis una pequeña revisión de este fabuloso dispositivo. En primer lugar, cuenta con 5 interfaces de red 10/100 y un procesador de 400MHz, y según las pruebas realizadas por MikroTik logra un Throughput de hasta 450Mbps en total (con frames de 1500 bytes) y hasta 92000 paquetes por segundo (con frames de 64 bytes). Cuenta también con un puerto USB, el cual se puede usar para conectar un módem GSM y tener avisos/alertas por SMS. Este último atributo también permite enviarle un SMS al MikroTik para que ejecute algún script. El puerto además se puede usar para conectar un dispositivo de almacenamiento externo (como un pendrive o disco externo) y hacer caché ahí mismo. Personalmente conecté un disco de 80GB y me lo detectó sin problemas. Quizá una de las cosas que más se esperaban de un RouterBOARD de bajo costo, es la incorporación de una placa inalámbrica. Lo bueno de este dispositivo es que cuenta con una tarjeta en 2

Ponle un firewall a tu Linux. IPTables

IPTables (tambien conocido como netfilter) nos permite configurar un Firewall de forma que tengamos controlado quien entra , sale y/o enruta a traves de nuestra maquina Linux… Precisamente estas son las tres reglas basicas de todo Firewall: INPUT , OUTPUT y FORWARD . Aunque con iptables podremos hacer muchas mas cosas como: NAT (Network Address Translation), Masquering, Control de ancho banda, Control segun la MAC, evitar ataques DoS, Control Estado (esta es una de las principales novedades respecto a ipchain), etc… Un ejemplo de un script para crear un firewall puede ser el siguiente: #!/bin/sh # # Firewall Script para Linux 2.4.x e iptables # ######################################## # # 1. Opciones de configuración. # ######################################### # # Configuración de area local. # LAN_IP=”192.168.0.2″ LAN_IP_RANGE=”192.168.0.0/24″ LAN_BCAST_ADRESS=”192.168.0.255″ LAN_IFACE=”eth1″ ######################################## # # Configuración

Copias de seguridad de tu LINUX

Si algún día quieres crear una copia de seguridad de tu Linux y no morir en el intento, podemos utilizar el comando dd para crear la imagen y el gzip para comprimirla. Vamos a suponer que tenemos un disco duro de 10GB en /dev/hda con una partición primaria del cual queremos hacer la imagen y otro de 20GB en /dev/hdb y montado en /mnt/backup que es donde crearemos el archivo de imagen. El comando a ejecutar para crear la imagen (lo podemos hacer en caliente): dd if=/dev/hda1 | gzip > /mnt/backup/imagen_hda1.img.gz Cuando queramos restaurar la copia de seguridad, tan solo arrancaremos con un LiveCD y montaremos el disco de backup en una carpeta, por ejemplo en /mnt/backup El comando a ejecutar para restaurar la imagen (y copia de seguridad): gzip -dc /mnt/backup/imagen_hda1.img.gz | dd of=/dev/hda1 Y con esto ya tenemos nuestro backup restaurado. Esta probado en un servidor en producción y ha funcionado al 100%. La imagen se ha creado en caliente y ha lle

Prevenir Hotlinking

Hotlinking, inline linking o leeching es poner el enlace de una página en otra distinta, normalmente una imagen. Esto suelen hacerlo mucho los blogs. Yo no lo hago, en su lugar hago una copia de la imagen y la subo al servidor de forma que la copia esta en el servidor local en vez de robar ancho de banda al servidor de donde saca la foto. Si tienes un servidor y la gente enlaza directamente a tus imágenes o ficheros y quieres evitarlo aquí te pongo un sencillo truco para ello. Asumimos que usas apache y tienes el modulo mod_rewrite instalado. Creamos un fichero que se llame .htaccess con el siguiente contenido: RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?midominio.com/.*$ [NC] RewriteRule .(gif|jpg)$ - [F] Eso hara que cuando hagan hotlink a una imagen de tu servidor la imagen de un error. Si en vez de eso quieres que envíe siempre la misma imagen substituye la línea RewriteRule por esta otra: RewriteRule .(gif|jpg)$ http://

Forzar el tráfico a salir por una dirección IP específica

A veces es necesario forzar el uso de una dirección IP específica para cierto tipo de tráfico o servicios, los cuales no tienen opciones de configuración. Afortunadamente, iptables puede hacer esto por nosotros facilmente. Aquí os dejo unos ejemplos: Hacer que todo el trafico saliente por la eth0 venga desde 192.168.1.4: iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.4 O, para un ejemplo mas especifico, hacer todas las conexiones SMTP salientes que venga desde 192.168.1.4: iptables -t nat -A POSTROUTING -p tcp -s ! 127.0.0.1 --dport 25 \ -j SNAT --to-source 192.168.1.4

Convertir caracteres de latin1 a utf-8

Uno de los problemas que me surgió al migrar de latin1 a utf-8 fue que muchos carácteres que tenía los archivos de backup de la base de datos quedaron en la antigua codificación y no se mostraban correctamente. La misión era convertir estos nombres de archivo a utf-8. Para resolver ese problema viene en nuestra ayuda el paquete convmv . El paquete convmv nos permite convertir el nombre de un fichero o de un conjunto de ficheros de una codificación a otra. Por ejemplo para convertir todos los ficheros del directorio actual de Latin1 a UTF-8 debemos ejecutar: $ convmv -f latin1 -t utf-8 * Opciones interesantes son ‘-r’ para recursividad y ‘–list’ para conocer la lista de codificaciones soportadas. También tenemos ‘–unescape’ que sustituye las secuencias %hex utilizadas en las URLs. Esto es muy interesante para convertir el nombre de ficheros descargados con wget. Recomiendo la lectura atenta del manual para conocer todas las posibilidades de este programa. Po

¿Problemas con el monitor en Linux?

Si algún dia tienes problemas con la sección monitor del xorg.conf debido al refresco, resolución y demás menesteres, no tienes nada mas que instalar el paquete read-edid y ejecutar un par de comandos para que te de la seccion entera, la cual podras copiar al xorg.conf y poder tener la resolución y refresco adecuado a tu monitor con Linux. Existe un paquete tanto en Debian como en Gentoo llamado read-edid que incluye dos utilidades, aunque sólo para la arquitectura i386, y que permiten interrogar al monitor sobre sus características. Con ellas, y algo de suerte si el monitor no es muy antiguo, podrás averigüar la información que precisas para configurar las X. Como ejemplo pongo aquí la salida de parse-edid correspondiente a mi monitor: equipo:/root# get-edid | parse-edid get-edid: get-edid version 1.4.1 Performing real mode VBE call Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0 Function supported Call successful VBE version 200 VBE string at 0xc1030 "S3 Incorpo

Servidor DNS dos en uno con Bind

Este tutorial muestra cómo configurar el servidor DNS Bind9 para servir a una red interna y una red externa, al mismo tiempo con diferentes resoluciones de nombres/IP. Para lograr esto se utiliza una nueva característica de Bind9 llamada “ view ” o vista. Esto nos puede servir de gran ayuda cuando tenemos un servidor en la red de nuestra casa y queremos que resuelva la IP publica del servidor para las solicitudes que vienen desde Internet y que nos resuelva la IP interna para cuando lo solicitamos nosotros. Para ello debemos modificar nuestro named.conf y añadir el siguiente codigo: acl internals { 127.0.0.0/8; 192.168.1.0/24; }; Con esto lo que queremos decir es que la ACL internals son las IPs 127.0.0.0/8 y todo el rango de IPs de la subred 192.168.1.0. De momento vamos a seguir configurando nuestro DNS. A continuación añadimos algo similar a lo siguiente: view "internal" { match-clients { internals; }; recursion yes; zone "example.

COMO matar tu LINUX

Como ya sabran el famoso comando rm -rf / ya dejo de ser una broma para los geeks que siempre recomendaban a los newbies como metodo para solucionar algun problema… Ya no se puede efectuar destruir el sistema con este comando… lo dudan??? Pruebenlo y me comentan. Pero aparte de este bendito comando quedan otros 6 mas… Aqui el artículo en un ingles basico: Tomado de: http://www.junauza.com/2008/11/7-deadly-linux-commands.html If you are new to Linux, chances are you will meet a stupid person perhaps in a forum or chat room that can trick you into using commands that will harm your files or even your entire operating system. To avoid this dangerous scenario from happening, I have here a list of deadly Linux commands that you should avoid. 1. Code: rm -rf / This command will recursively and forcefully delete all the files inside the root directory. 2. Code: char esp[] __attribute__ ((section(".text"))) /* e.s.p release */ = "\xeb\x3

Hacking en MS2110 Code Name [Stora]

Imagen
La verdad es que el NAS no esta nada mal. Un sistema de almacenamiento en red pequeño y con gran capacidad. De serie trae un HDD de 1 TB y por el precio que tiene… Es como si comprases un HDD de 1TB y por un poquito mas comprases una carcasa externa. Bueno el NAS en si esta bastante bien, con un interfaz diseñada para hacerlo todo en dos clicks y para usuarios inexpertos por lo que la gente de NetGear se lo ha currado bastante. Si eres el poseedor de la Stora, seguramente querras ver que es lo que se cuece en su interior. Primero unos enlaces de interes: Hardware Hackers Unite OpenStora Obtener acceso root en Stora: Para ello necesitaremos algo tan simple como el Product Code, que esta situado en la parte inferior del cubo, tambien puede ir alojado en la parte trasera cerca del conector RJ45, OJO no confundir con el S/N. Material necesario: Stora MS2110 Putty Tan simple como eso… Bueno en un principio lo que vamos a hacer es configurar el Stora para us

Múltiples VirtualHost en SSL en una única IP (SNI)

Imagen
Resumiendo mucho el funcionamiento de los VirtualHost en Apache, se puede decir que el cliente (nuestro navegador) envía al servidor el nombre del dominio al que deseamos acceder y Apache lo busca en sus configuraciones para entregarte la web. De esta forma en un solo servidor podemos tener alojados múltiples páginas web, cada una con su VirtualHost. GET /blog/ HTTP/1.1 Host: javirodriguez.com.es User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.0.6) Gecko/2009020911 Firefox/3.0.6 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: es,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Pero la cosa cambia si las webs deben ser transmitidas mediante HTTPS, esto es, estableciendo una conexión SSL. Gracias a esta tecnología es posible que todo el tráfico entre el servidor y nuestro navegador vaya cifrado y esta es la raíz del problema. Al tener todos

Discos duros y S.M.A.R.T.

Tenemos un comando en Linux que se llama “smartctl” el cual nos da información vital sobre el disco duro consultado. Datos tales como temperatura, horas en funcionamiento, promedio de fallo, etc… equipo ~# smartctl -a -d ata /dev/sda SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 100 253 006 Pre-fail Always - 0 3 Spin_Up_Time 0x0003 097 097 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 67 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 084 060 030 Pre-fail Always - 247181777 9 Power_On_Hours 0x0032 076 076 000 Old_age Always - 21179 ... ..

Incluir el password de una conexión SSH en línea de comandos

Para todo aquel que necesite hacer un script en bash y quiera meter la clave de una conexión SSH en línea de comandos para ejecutar scripts, la solución es sshpass . No recomiendo este método, ya que una clave en un script puede ser un problema de seguridad, para ello podemos realizar la conexión SSH con certificados que ya explicaré en otro momento. La idea de esta entrada es para usos puntuales.   wget http://heanet.dl.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz tar xvf sshpass-1.05.tar.gz cd sshpass-1.05 ./configure make make install Ahora una vez instalado sshpass en nuestro sistema o servidor, la sentencia para conectarnos a ssh es la siguiente:   sshpass -p 'passwd' ssh root@172.25.0.1

SSH sin contraseña, usando certificados

Hoy voy a explicar como hacer una conexion SSH sin necesidad de meter la clave en cada conexion. Esto puede ser util para conexiones desde servidores de Backup, RSYNC, etc… Lo primero de todo, ejecutamos en el “cliente” el siguiente comando:   jose@thanatos:~$ ssh-keygen -t dsa Generating public/private rsa key pair. Enter file in which to save the key (/home/jose/.ssh/id_rsa): /home/jose/.ssh/id_rsa already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/jose/.ssh/id_dsa. Your public key has been saved in /home/jose/.ssh/id_dsa.pub. The key fingerprint is: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   Si te fijas, no pongo una clave “passphrase”, porque sino en cada conexión, nos pediría la clave del certificado. Una vez hecho esto, lo unico que nos queda por hacer es añadir el contenido del archivo ~/.ssh/id_dsa.pub en el servidor o servidores a los que nos vayamos a conectar en

Autocompletar usuarios o hosts en bash

Usando bash uno se acostumbra muy fácilmente al tabulador para autocompletar comandos y ficheros. Pero también podemos autocompletar usuarios y hosts en bash . La combinación para autocompletar usuarios es la siguiente: Alt-AlGr-4 ( Alt-~ ). En caso que no autocomplete si repetimos la combinación nos dará las opciones disponibles, deberemos añadir más caracteres ya que existe más de una posibilidad:   $ a abrt adm apache avahi avahi-autoipd   Podemos hacer lo mismo para los hosts con la combinación Alt-AlGr-2 ( Alt-@ ) que igualmente con dos veces nos indicará las opciones:   $ a adama apolo

DHCP Failover con ISC DHCP Server

Hoy vamos a instalar un servidor secundario/failover del servicio DHCP de nuestra red Linux. Como todos sabemos, una simple caida del servidor DHCP puede dejar a toda la red sin funcionar ya que nuestros clientes (si usan el servicio de DHCP), no podran obtener una dirección IP válida y seria imposible que les funcionase algo. Para evitar posibles caidas de este servicio, vamos a instalar un segundo servidor failover. Suponemos que ya tenemos el servidor principal funcionando en la subred 192.168.200.0/24 como se puede ver en el ejemplo. Tan solo tenemos poner las primeras lineas que estan entre los corchetes de failover, poniendo en address la IP del servidor principal, y en peer adress la IP del servidor failover. Aqui lo vemos: # # /etc/dhcpd.conf for primary DHCP server #   authoritative; ddns-update-style none;   failover peer "dhcp-failover" { primary; # declare this to be the primary server address 192.168.200.2; port 647; peer address 192.

Proxmox VE 2.0 está disponible para su descarga

Proxmox VE (entorno virtual), una plataforma de virtualización de código abierto, muy fácil de usar al ejecutar accesorios y máquinas virtuales, acaba de alcanzar la versión 2.0. Proxmox VE 2.0 está finalmente disponible, después del lanzamiento de una versión Beta y una versión Release Candidate. Podemos asumir sin dar lugar a dudas que esta versión presenta muchas mejoras y actualizaciones importantes. Puntos destacados de Proxmox VE 2.0: Linux Kernel 2.6.32 La distribución se basa en Debian Squeeze Se implementó una nueva GUI basada en el marco JavaScript Ext JS 4 Se agregó soporte para múltiples fuentes de autenticación (MS Active Directory, LDAP, Linux PAM, autenticación de Proxmox VE) Se han agregado agentes de recursos para KVM y OpenVZ Las copias de seguridad se pueden realizar a través de la GUI Todos los trabajos pueden controlarse como “tareas recientes” Soporte High Availability Cluster para los huéspedes KVM y los contenedores OpenVZ

Fast Reboot o Hard Reboot de linux

Con este comando reiniciaremos Linux causando el mismo efecto que pulsando el boton de reset, es decir, no se para ningún servicio ni nada, todo a pelo. Deberías ejecutarlo cuando Linux no responde a un reboot comun. echo 1 > /proc/sys/kernel/sysrq echo b > /proc/sysrq-trigger