28 agosto 2007

Restaurar grub tras la instalación de Windows

¿Quién no ha tenido que reinstalar nunca Windows y ha machacado su maravilloso Grub? Esto es algo que pasa habitualmente en los sistemas duales ya que por suerte o por desgracia Windows se descuajaringa cada cierto tiempo y al reinstalar machaca el sector de arranque del disco duro sin avisar (es un poco egoísta).
Bien, restaurar Grub es sencillo, solo cogemos una Linux Live CD y arrancamos nuestra máquina con ella.

1- Abrimos una consola

2- sudo su
o...
su
Ya estamos como root (no nos pedirá contraseña por ser una live)

3- grub
Ya estamos dentro de una consola grub

4- find /boot/grub/stage1
Con esto buscamos la partición donde antes se alojaba el stage1 de grub. Devolverá algo parecido a (hd0,0) , (hd0,1) ...
En general (hdX,Y) donde X es el numero de disco duro e Y el numero de partición, ambas empezando desde 0. Así la primera partición del disco primario esclavo sería (hd0,0).

5- root (hd0,2)
o la partición que nos haya devuelto el comando anterior.

6- setup (hd0)
Indicamos en que disco duro instalaremos grub, importante que es disco duro y no partición, por eso no lleva el segundo número ;)

7- quit

8- Reiniciamos la máquina

Ya tenemos Grub reinstalado en el disco duro, si ahora no nos aparece en el menú la opción de arrancar Windows solo hay que iniciar en Linux y como root editar el archivo: /boot/grub/menu.lst y añadir al final las siguientes líneas:

title Microsoft Windows
root (hd0,4)
chainloader +1
makeactive
boot

En "title" se puede poner lo que quieras que aparezca como título ;)
Donde (hd0,4) es la partición donde esté Windows (si no sabes cual es como root escribe fdisk -l y verás un listado de particiones). Recuerda que la partición tiene que estar indicada en "formato Grub", que es como expliqué más arriba.

Ya se que esto está ya en mil sitios... Espero que sea de utilidad a alguien ;)

18 marzo 2007

iptables básico

Iptables es un sistema de firewall integrado en el núcleo de Linux, para configurarlo basta con crear un script con las regla necesarias. Vamos a ver una configuración muy básica de iptables y como crear el script.

Decir que ante la configuración de un firewall podemos adoptar dos políticas de seguridad por defecto:

  • Denegar todo y aplicar reglas específicas para permitir lo estrictamente necesario (recomendado, más seguro)
  • Aceptar todo y denegar determinadas cosas que consideremos peligrosas o que no nos convienen. (poco seguro)
Tipos de reglas de iptables:
  • MANGLE
  • NAT: prerouting, postrouting
  • FILTER: input (paquete entrante a la máquina), output ( paquete saliente), forward (paquete destinado a otra máquina)
A las cuales se le pueden aplicar varias acciones:
  • ACCEPT (aceptar)
  • DROP (descartar)
  • REJECT (rechazar, igual que drop pero envía un paquete de error a quien envió originalmente)
  • ...
Al comienzo borraremos todas las reglas activas hasta el momento:
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

Después aplicamos la política por defecto, en este caso elegimos la política de "denegar todo":
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P POSTROUTING DROP
iptables -t nat -P PREROUTING DROP

Añadimos reglas de filtrado, este es el esquema de una regla de filtrado:
iptables -A [INPUT, OUTPUT, FORWARD] -i INTERFAZ -s ORIGEN -d DESTINO \
-p PROTOCOLO --dport PUERTO_ORIGEN --sport PUERTO_ORIGEN -j ACCIÖN
  • ORIGEN y DESTINO: dirección IP, dirección IP de red (con formato 10.0.0.0/24) y nombres; una IP 0.0.0.0/0 indica cualquier dirección
  • INTERFAZ: eth0, eth1, lo, ppp0... según corresponda
  • PROTOCOLOS: TCP, UDP, ICMP... según corresponda
  • ACCIONES: ACCEPT, DROP, REJECT...
  • PUERTO: Un puerto solo (80) o un rango de puertos (20:21), los parámetros dport y sport pueden omitirse, en cuyo caso la regla se aplicará a todos los puertos.

Si nuestro firewall va a ser local con esto nos debe valer en principio, pero si vamos a usarlo como firewall de una red debemos configurar el equipo con dos o más tarjetas de red y activar el enrutamiento entre ellas. Para activar el enrutamiento hacemos lo siguiente:
echo "1" > /proc/sys/net/ipv4/ip-forward

y creamos una regla para cada enrutamiento
iptables -t nat -A POSTROUTING -s IP_ENTRADA -o INTERFAZ_SALIDA \
-j SNAT -to-source IP_SALIDA
donde IP_ENTRADA, IP_SALIDA son las IP de las interfaces del firewall.

Si queremos ver que reglas están aplicadas lo podemos hacer con el comando:
iptables -L -n


Todo esto lo metemos en un script "iptables.sh", le damos permisos de ejecución y hacemos que se ejecute al inicio de la máquina.

01 febrero 2007

Elegir tu distribución de Linux

Leyendo en el foro de Linux en Español he encontrado un enlace a este test, que aunque está en ingles se contesta muy fácil y rápido y te recomienda una distribución de Linux en función de tus necesidades y conocimientos ;)

http://www.zegeniestudios.net/ldc/index.php

18 enero 2007

BIND9 how-to (Servidor DNS)

Este how-to pretende dar unas nociones básicas de la configuración de un servidor DNS en Linux con BIND9. Se asumen conocimientos básicos sobre que es el protocolo DNS. Espero que os sea útil ;)

paquete: bind9
directorio: /etc/bind
ficheros: named.conf, named.conf.options y named.conf.local


named.conf: es el fichero de configuración de BIND, es el que realmente contiene la configuración, solo que para facilitar el mantenimiento se distribuye el contenido en diferentes ficheros y se incluyen en él de la siguiente manera:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";


named.conf.options: contendrá opciones del servidor DNS.

directory "/var/cache/bind"
indica el directorio donde guardará la caché bind
query-source address * port 53;
indica puerto de peticiones DNS
forwarders {
0.0.0.0;
};
indica los servidores DNS para resolver direcciones
desconocidas por nuestro servidor DNS

listen-on-v6 { any; };
Permite que BIND escuche direcciones IP V6


named.conf.local: en este fichero definiremos las zonasy le indicaremos el fichero de configuración de cada zona. La zona se define de la siguiente manera:

zone "nombredezona.com" {
type master;
file "/etc/bind/db.nombredezona.com";
};

para la zona inversa (obtención de nombre a partir de una IP) definimos una zona de nombre la dirección de red (sólo los bits de red recorriendo la jerarquía de dominio, desde el subdominio hasta root, seguido de in-addr.arpa, por ejemplo, para 192.168.1.x, el nombre de la zona inversa será "1.168.192.in-addr.arpa"):

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};


fichero de zona:

ejemplo db.nombredezona.com:

$TTL 10800; Tiempo de vida (en seg)
@ IN SOA nombredezona.com. root.nombredezona.com. (
1234567 ; Numero de Serie (diferente para cada zona)
10800 ; Refresco (en seg)
7200 ; Reintento (en seg)
1296000 ; Tiempo de expiración (en seg)
172800 ) ; Caché negativo TTL (en seg)
;
@ IN NS ns0.nombrezona.com. ; Nameserver
@ IN MX 10 mail.nombrezona.com. ; Mail Exchange
@ IN TXT "Servidor"
@ IN HINFO "Servidor privado" "lan interno"
;
@ IN A 192.168.1.2 ; @ representa el nombre de la zona
* IN A 192.168.1.2 ; cualquier dirección no especificada
;de la zona será reenviada a dicha IP

nombremaquina IN A direccionIP
; resolución de nombre para una máquina
servicio.(tcp/udp) SRV 0 0 puerto nombremaquina.nombredezona.com.
; resolución de nombre para un puerto de una máquina

ejemplo db.192,168,1 (zona inversa):

$TTL 10800; Tiempo de vida (en seg)
@ IN SOA nombredezona.com. root.nombredezona.com. (
1234567 ; Numero de Serie (diferente para cada zona)
10800 ; Refresco (en seg)
7200 ; Reintento (en seg)
1296000 ; Tiempo de expiración (en seg)
172800 ) ; Caché negativo TTL (en seg)
;
@ IN NS ns0.nombredezona.com.
1 IN PTR www.nombredezona.com.
IP IN PTR nombre.nombredezona.com.


utilidad named-checkzone:

named-checkzone nombredezona nombredearchivodeconfig

Con este comando comprobaremos si la configuración de dicha zona es correcta mostrando su número de serie seguido de OK y en caso de no serlo nos devolverá la línea del fichero de configuración que falla y el motivo.

15 enero 2007

Virtual Dimension

Estaba yo leyendo el blog de un bofher (para ser más exactos el de wardog) cuando he visto una entrada en el que comentaba que windows no tiene escritorios virtuales, y menciona este programa para solucionarlo. Por lo visto es la leche, de mañana no pasa para probarlo :D

La página de Virtual Dimension, aquí

Salu2.

03 noviembre 2006

Redes Inalámbricas

Aqui os dejo una presentación que realizamos el año pasado sobre redes inalámbricas.

Podéis descargarlo de aqui.