Páginas

sábado, 31 de octubre de 2009

Soporte usb virtualbox Debian

Probado en Debian y Ubuntu 9.04 Jaunty

Abra un Terminal y tecleae (vim o su editor favorito):
$ vim /etc/fstab

Agregue estas líneas:
# soporte usb para virtualbox
none /proc/bus/usb usbfs devgid=46,devmode=666 0 0

Guardar y teclear:
$ sudo mount -a

Ahora añada su nombre de USUARIO al grupo virtualbox en el archivo /etc/group
$ vim /etc/group, queda más o menos así (por ejemplo, xena):
vboxusers:x:125:xena

o puede hacerlo desde Sistema -> Administración -> Usuarios y Grupos -> desbloquear -> gestionar grupos -> vboxusers -> Propiedades -> marque el usuario, (por ejemplo, xena ), con el que hace login.

Por último en configuración de virtualbox habilite usb.
Reinicie virtualbox.

miércoles, 28 de octubre de 2009

Cortafuegos conexion a Internet compartida IP WAN estatica

Construir nuestra propia caja cortafuegos en hardware x86 para nuestra conexión a Internet por cable o DSL utilizano nuestra distribución GNU-Linux favorita.

Tendremos una conexión a Internet compartida y un cortafuegos, necesitamos saber que componentes de hardware utilizar.

Aunque existen distribuciones de GNU-Linux especializadas en cortafuegos o firewall para este ensayo utilizaremos:

- Un portatil con GNU-Linux Debian Lenny con dos interfaces de red. Una alámbrica que la llamaremos tal y como la nombre mi sistema "eth0" y otra interface de nombre "wlan0" inalámbrica, la 3945ABG Intel Centrino.
- Un segundo pc de sobremesa con Ubuntu 9.04 instalado y un cable cruzado puente para pasarle la conexión a Internet.

Lo primero es desactivar el cortafuegos si lo tenemos activado. Puede ser necesario instalar los paquetes net-tools, ifrename y Nmap en ambos pc's.

Configuración de tarjetas de interfaz de red en Debian:
Configuramos la tarjeta NIC LAN con una IP estática del tipo c para nuestro esquema de red privada. No asignaremos la dirección LAN con DHCP. Configuraremos la interfaz WAN con la información proporcionado por nuestro ISP, o sea, una dirección ip local estática y una dirección PUBLICA dinámica. No nos conectamos a internet todavía.

Editamos el archivo interfaces con vim, ¿porque vi? porque respeta el formato, para que quede así:
# vim interfaces
## /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# lan interface
auto eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255

#wan interface
auto wlan0
iface wlan0 inet static
address 78.122.0.45
netmask 255.255.255.0
gateway 192.168.153.1

Guardamos y cerramos

Estos datos se los proporciona su ISP

Ahora, fijamos los nombres de las interfaces con ifrename:
Primero buscamos las direcciones MAC de nuestras interfaces con ifconfig
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:21:9b:e2:cd:44
......
wlan0 Link encap:Ethernet HWaddr 00:1f:dd:ff:a0:3c

En este momento introducimos nuestros nombres de interfaces y direcciones MAC en /etc/iftab. Si no existe el archivo iftab deberá crearlo.

# vim /etc/iftab
## /etc/iftab
eth0 mac 00:21:9b:e2:cd:44
wlan0 mac 00:1f:dd:ff:a0:3c

La dirección LAN la dirección de la pasarela o gateway que será instalada en todos los pc's de nuestra LAN.

En el pc de sobremesa con el que queremos compartir la conexión a Internet la configuración de la tarjeta eth0 alámbrica será ip fija gw 10.0.0.10 y los dns de su ISP:
ip 10.0.0.20
netmask 255.255.255.0
gateway 10.0.0.10
dns1 80.58.61.250
dns2 80.58.61.254

Añadiremos estos parámetros del kernel al archivo /etc/sysctl.conf necesarios para la conexión a Internet compartida.
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0

Llamaremos /usr/local/bin/firewall_nat al siguiente guion copielo y hágalo ejecutable en rw para root con chmod 0700. Es justo decir que este guion es obra de Schroder autora de Networking Linux.

#!/bin/sh
##/usr/local/bin/firewall_nat
#iptables firewall script for sharing
#broadband Internet, with no public services

#define variables
ipt="/sbin/iptables"
mod="/sbin/modprobe"
LAN_IFACE="eth0"
WAN_IFACE="wlan0"

#basic set of kernel modules
$mod ip_tables
$mod ip_conntrack
$mod iptable_filter
$mod iptable_nat
$mod iptable_mangle
$mod ipt_LOG
$mod ipt_limit
$mod ipt_state
$mod ipt_MASQUERADE

#add these for IRC and FTP
$mod ip_nat_ftp
$mod ip_nat_irc
$mod ip_conntrack_ftp
$mod ip_conntrack_irc

# Flush all active rules and delete all custom chains
$ipt -F
$ipt -t nat -F
$ipt -t mangle -F
$ipt -X
$ipt -t nat -X
$ipt -t mangle -X

#Set default policies
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT

$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT

#this line is necessary for the loopback interface
#and internal socket-based services to work correctly
$ipt -A INPUT -i lo -j ACCEPT

#Enable IP masquerading
$ipt -t nat -A POSTROUTING -o $WAN_IFACE -j MASQUERADE

#Enable unrestricted outgoing traffic, incoming
#is restricted to locally-initiated sessions only
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A FORWARD -i $WAN_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -i $LAN_IFACE -o $WAN_IFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Accept important ICMP messages
$ipt -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

#Reject connection attempts not initiated from inside the LAN
$ipt -A INPUT -p tcp --syn -j DROP

Los nuevos parámetros sysctl debe abrirlos:
# /sbin/sysctl -p

Ejecute firewall_nat
# /usr/local/bin/firewall_nat

Conectese a la interfaz WAN utilizando su interfaz wireless:
# /sbin/ifup wlan0
# iwconfig wlan0 essid "WLAN_LIN"
# iwconfig wlan0 essid "WLAN_LIN" key 43303031443230333183303133
# dhclient wlan0

Después de ejecutar dhclient wlan0, Verá algo como:
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

wmaster0: unknown hardware address type 801
wmaster0: unknown hardware address type 801
Listening on LPF/wlan0/00:1f:dd:ff:a0:3c
Sending on LPF/wlan0/00:1f:dd:ff:a0:3c
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 11
DHCPOFFER from 10.185.228.9
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 10.185.228.9
bound to 192.168.1.34 -- renewal in 122773 seconds.

Conectese al portátil desde el pc sobremesa utilizando un cable cruzado, interfaz eth0 y los datos mencionados anteriormente utilizando un gestor de redes o manualmente:
# eth0 pc_sobremesa
ip 10.0.0.20
netmask 255.255.255.0
gateway 10.0.0.10
dns1 80.58.61.250
dns2 80.58.61.254

Ya tiene que poder enviar ping desde y hacia las ip's 10.0.0.20 y 10.0.0.10 y navegar por Internet desde cualquiera de los dos pc's.

Linux es genial!

lunes, 19 de octubre de 2009

Home en una particion separada

Partiremos del supuesto que posee un sistema GNU-Linux en una particion y quiere separar /home del resto del sistema. Supondremos también que ya ha creado esa nueva partición ext3 ó ext4. Lo siguiente será montar la partición la nueva partición para realizar la copia de archivos. Una vez tenemos claro de dónde a dónde vamos a mover, tenemos que tener montada la partición nueva para poder copiar a ella los archivos.

$ sudo mkdir /mnt/soekris
$ sudo mount /dev/sda9 /mnt/soekris

La copiar de archivos se puede realizar desde el propio sistema, utilizando un terminal:

Nos desplazamos a nuestro directorio /home

$ cd /home

Como usuario root:
# cp -ax . /mnt/soekris

Despues de realizada la copia de archivos, renombramos el antiguo /home

$ cd /
# mv /home/  home.antiguo
# mkdir /home

Desmontar:
# umount /dev/sda9 /mnt/soekris

Montamos home en la nueva partición:
# mount /dev/sda9 /home

El siguiente paso es editar el /etc/fstab, para que el sistema monte la particion en cada reinicio.

Usamos el editor que queramos:
# vim /etc/fstab

Y añadimos esta linea al final.
/dev/sda9 /home ext3 defaults 0 2

En Debian squeeze:
21fdbd40-ea93-4597-8af6-a0dcd38559c5  /home  ext3  defaults 0  2
Agregar un usuario nuevo:

Conviertase en root con la orden su


Una vez que usted es un usuario root puede agregar un nuevo usuario con el comando adduser, indicando las opciones seguido del login (nombre de la cuenta a añadir):

# adduser -s /bin/bash -g users -G audio,video,plugdev,portage,usb,cdrom -m hypatia

#  passwd hypatia

Si desea dar al usuario 'susana' una cuenta en su sistema podría ejecutar 'useradd susana' para crear un inicio de sesión para ella.

Ahora establezca una contraseña para la cuenta ejecutando "passwd susana"

Lo siguiente que necesitas hacer es crear un directorio de inicio para ella. Esto normalmente sólo implica la ejecución de:

# mkdir /home/susana
# chown susana:users /home/susana

Esto crea un directorio con el mismo nombre que la cuenta de inicio de sesión bajo el directorio /home. Con chown el directorio pasa a ser propiedad del usuario.
Si se omite el comando chown el usuario no tendrá permiso para guardar archivos dentro de su propio directorio.

miércoles, 7 de octubre de 2009

Enrutamiento estatico subredes

Configuración de enrutamiento estático a través de subredes.

Hay varias formas de conseguirlo. Una de ellas es crear rutas estáticas de router a router. Me explico, supongamos que tienes tres subredes y tres routers:



Router A -- > 192.168.10.100 eth1 subred -- > 10.0.0.0/24
Router B -- > 172.16.5.125 eth1 subred -- > 10.0.1.0/24
Router C -- > 172.24.0.25 eth1 subred -- > 10.0.2.0/24

Cada router va a necesitar dos rutas:

En el Router A las rutas podrian establecerse asi;

# route add -net 172.16.5.0/24 gw 192.168.10.100 eth1
# route add -net 172.24.0.0/24 gw 192.168.10.100 eth1

En el Router B:

# route add -net 192.168.10.0/24 gw 172.16.5.125 eth1
# route add -net 172.24.0.0/24 gw 172.16.5.125 eth1

En el Router C:

# route add -net 192.168.10.0/24 gw 172.24.0.25 eth1
# route add -net 172.16.5.0/24 gw 172.24.0.25 eth1

Desde este momento los hots de las tres subredes pueden comunicarse entre si.
Para eliminar las rutas:
# route del -net 192.168.10.0/24

Debe conocer las mascaras de subred y no cometer errores tipograficos. ¿Y como calcular direcciones?
Hay un programa disponible para cualquier gnu-linux llamado ipcalc que permite averiguar todo lo que necesita saber para una sola red:

$ ipcalc 172.16.5.0/24

Supongamos que quiere dividir una red 172.150.0.0 en tres subredes para 90 hosts, digale a ipcalc su mascara de red y cuantos hosts quiere en cada segmento:

$ ipcalc 172.150.0.0/16 --s 35 25 30

Address: 172.150.0.0 10101100.10010110. 00000000.00000000
Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000
Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111
=>
Network: 172.150.0.0/16 10101100.10010110. 00000000.00000000
HostMin: 172.150.0.1 10101100.10010110. 00000000.00000001
HostMax: 172.150.255.254 10101100.10010110. 11111111.11111110
Broadcast: 172.150.255.255 10101100.10010110. 11111111.11111111
Hosts/Net: 65534 Class B

1. Requested size: 35 hosts
Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Network: 172.150.0.0/26 10101100.10010110.00000000.00 000000
HostMin: 172.150.0.1 10101100.10010110.00000000.00 000001
HostMax: 172.150.0.62 10101100.10010110.00000000.00 111110
Broadcast: 172.150.0.63 10101100.10010110.00000000.00 111111
Hosts/Net: 62 Class B

2. Requested size: 25 hosts
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Network: 172.150.0.64/27 10101100.10010110.00000000.010 00000
HostMin: 172.150.0.65 10101100.10010110.00000000.010 00001
HostMax: 172.150.0.94 10101100.10010110.00000000.010 11110
Broadcast: 172.150.0.95 10101100.10010110.00000000.010 11111
Hosts/Net: 30 Class B

3. Requested size: 30 hosts
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Network: 172.150.0.96/27 10101100.10010110.00000000.011 00000
HostMin: 172.150.0.97 10101100.10010110.00000000.011 00001
HostMax: 172.150.0.126 10101100.10010110.00000000.011 11110
Broadcast: 172.150.0.127 10101100.10010110.00000000.011 11111
Hosts/Net: 30 Class B

Needed size: 128 addresses.
Used network: 172.150.0.0/25
Unused:
172.150.0.128/25
172.150.1.0/24
172.150.2.0/23
172.150.4.0/22
172.150.8.0/21
172.150.16.0/20
172.150.32.0/19
172.150.64.0/18
172.150.128.0/17

Quiere que las rutas estáticas sean persistentes?.

En Debian, agréguelas a /etc/network/interfaces
para su interfaz correspondiente. (Como verá, ésta corresponde a la subred conectada al router A, las B Y C son facilmente deducibles):

auto eth1
iface eth1 inet static
address 192.168.10.100
netmask 255.255.255.0
gateway 12.34.56.78
broadcast 192.168.10.255

up route add -net 172.16.5.0/24 gw 192.168.10.100 eth1
up route add -net 172.24.0.0/24 gw 192.168.10.100 eth1
down route del -net 172.24.0.0/24
down route del -net 172.16.5.0/24

Otra manera de conseguirlo, (aburridamente facil), es tener los tres routers en la misma red, en cuyo caso no será necesario configurar ruta alguna:

Router A - 192.168.10.150 eth1
Router B - 192.168.10.151 eth1
Router C - 192.168.10.152 eth1

¿Y de donde he aprendido todo eso, uhhh que tio que sabe!!
Bibliografía: Carla Schroder "Todo sobre administracion GNU-LINUX" aqui esta todo y mas... os lo recomiendo. Sencillamente imprescindible.