Configuración de red en Ubuntu 12.04 o posterior

Introducción

La configuración de red de un servidor puede hacerse de una de las siguientes maneras: estática o dinámica, en la primera de ellas se especifica por completo su información mientras que en la segunda se prefiere que un servidor DHCP que debe estar presente en la red, determine por sus propios medios la configuración de red del servidor.

A partir de la versión 12.04 de Ubuntu se introdujeron algunos cambios en la configuración de red, especialmente el hecho de que los servidores DNS para la configuración estática ya no se agregan en /etc/resolv.conf sino directamente en el archivo de /etc/network/interfaces, por este motivo vale la pena recordar el procedimiento para configurar las interfaces de red manualmente.

Configuración de la interfaz de loopback

$ vi /etc/network/interfaces

    # The loopback network interface
    auto lo
    iface lo inet loopback

Configuración de una interfaz con DHCP

$ vi /etc/network/interfaces

    # The primary network interface
    auto eth0
    iface eth0 inet dhcp

Configuración de una interfaz con información estática

$ vi /etc/network/interfaces

    # The primary network interface
    auto eth0
    iface eth0 inet static
       address 192.168.1.250
       netmask 255.255.255.0
       gateway 192.168.1.254
       dns-nameservers 8.8.8.8 8.8.4.4

Una vez reiniciado el servicio se generará automáticamente la información de DNS a partir del parámetro dns-nameservers especificado.

$ cat /etc/resolv.conf

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 8.8.8.8
    nameserver 8.8.4.4

Enlaces

Instalar KVM en Linux Ubuntu Server 9.10

Verificación previa.

Verificar el soporte a la virtualización.

Para que KVM pueda ejecutarse es necesario contar con el soporte de hardware en el procesador del servidor.  Las dos empresas proveedoras de procesadores cuentan con sus propias tecnologías de virtualización: AMD (AMD-V) e Intel (INTEL-VT).  Es posible que además de contar con el soporte físico también deban ser activadas en el sistema a través del SETUP del equipo.

Para verificar el soporte del hardware a las tecnologías de virtualización se debe ejecutar la siguiente instrucción.

$ egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo

En un equipo basado en Intel obtuve la siguiente salida estándar.

flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida tpr_shadow vnmi flexpriority

Mientras que en un equipo basado en AMD obtuve la siguiente salida estándar.

flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs

El tipo de kernel del servidor.

Para el servidor de virtualización se requiere utilizar un kernel de 64 bits ya que este le permite crear sistemas virtualizados de 32 y 64 bits según desee. Además le permite crear asignarle mas de 2GB de memoria RAM a las máquinas virtuales.

Para poder utilizar un kernel de 64 bits el procesador del servidor físico deberá ser también de 64 bits.  Para verificar esto es necesario ejecutar el siguiente comando.

$ grep ‘ lm ‘ /proc/cpuinfo

Si aparecen resultados de manera similar a los mostrados a continuación entonces el equipo cuenta con un procesador de 64 bits (long mode).

flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida tpr_shadow vnmi flexpriority

Para verificar si el servidor ya cuenta con un kernel de 64 bits ejecute el siguiente comando.

$ uname -m

Si la respuesta a este comando es x86_64 el servidor está utilizando un kernel de 64 bits, si por el contrario obtiene una respuesta como i686 se encuentra utilizando un kernel de 32 bits.

Instalación.

Instalación manual.

Para instalar KVM es necesario instalar los siguientes paquetes.

libvirtd Administración de las instanacias de QEMU y KVM
kvm El backend de la virtualización.
ubuntu-vm-builder Herramientas de línea de comando para la creación de las máquinas virtuales
bridge-utils Herraminetas para hacer los puentes de red entre las máquinas virtuales
virt-viewer Visor de las instancias de las máquinas virtuales

Esto se realiza mediante la ejecución del siguiente comando.

$ sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils

Nota: en la versión 10.04 de Ubuntu el paquete kvm es reemplazado por qemu-kvm.

Instalación de colecciones de paquetes.

En las versiones recientes de Ubuntu se incluye una colección de paquetes llamada Virtual Machine Host la cual incluye a la mayoría de paquetes requeridos por KVM.  Este procedimiento reemplaza parcialmente al mencionado anteriormente.

Para realizar la instalación utilizando este método ejecute la siguiente instrucción.

$ sudo tasksel install virt-host

De este modo es posible que no se instalen todos los paquetes mencionados en el aparte anterior ya que se instala un grupo predefinido de paquetes, especialmente ubuntu-vm-builder y virt-builder los cuales probablemente deban instalarse manualmente.

Grupo de usuarios libvirtd.

Los usuarios que deseen administrar las máquinas virtuales basadas en KVM deberán pertenecer al grupo libvirtd.  El procedimiento de instalación (a partir de la versión 9.10) automáticamente crea al grupo y agrega en él a los usuarios que pertenecen al grupo de administración.  Esto debe tenerse muy en cuenta cuando se creen nuevos administradores de máquinas virtuales.

Para que la inscripción en el grupo sea tomada en cuenta es necesario cerrar la sesión del usuario y volverla a abrir.

Prueba de instalación.

Para verificar la instalación recién hecha, solicite un listado de las máquinas virtuales (por ahora vacío) disponibles en el servidor mediante la ejecución del siguiente comando.

$ virsh -c qemu:///system list

Si la instalación fue exitosa, deberá obtener la siguiente salida estándar.

Connecting to uri: qemu:///system
Id Name                 State
———————————-

Enlaces.

Configurar temporalmente la red inalámbrica de Linux Ubuntu 9.10 desde línea de comando

Introducción.

Después de instalar el Linux Ubuntu Server 9.10 en el equipo que actuaría como servidor la idea era actualizar sus paquetes e instalarle GNOME como administrador de ventanas y escritorio que como mencioné anteriormente, para esta edición no se incluye por defecto.

La conexión a la red del equipo designado como servidor es inalámbrica y la tarjeta fue exitosamente detectada, sin embargo la interfaz no fue configurada automáticamente por Ubuntu.

El procedimiento descrito a continuación fue el seguido para configurar temporalmente la interfaz de red a través de la línea de comando para tener acceso a la red inalámbrica e instalar GNOME y su aplicación de configuración de redes desde la cual fue finalmente configurada la red.

Procedimiento.

Verificar las interfaces de red disponibles.

$ sudo lshw -C network

*-network
description: Wireless interface
product: RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: a
bus info: pci@0000:01:0a.0
logical name: wmaster0
version: 20
serial: 00:08:54:ab:83:2d
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list logical ethernet physical wireless
configuration: broadcast=yes driver=rtl8180 latency=64 maxlatency=64 mingnt=32 multicast=yes wireless=IEEE 802.11bg
resources: irq:19 ioport:ef00(size=256) memory:dffffc00-dfffffff

$ sudo iwconfig

lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0 IEEE 802.11bg  ESSID:””

Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
Tx-Power=20 dBm
Retry  long limit:7   RTS thr:off   Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0  Signal level:0  Noise level:0
Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
Tx excessive retries:0
Invalid misc:0   Missed beacon:0

virbr0    no wireless extensions.

Listar las redes inalámbricas disponibles.

$ iwlist scan

lo        Interface doesn’t support scanning.

eth0      Interface doesn’t support scanning.

wmaster0  Interface doesn’t support scanning.

wlan0 Scan completed :

Cell 01 – Address: 00:1B:2F:4D:0F:5C
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=30/100  Signal level=30/100
Encryption key:on
ESSID:”jimezam_wifi
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s
Bit Rates:9 Mb/s; 18 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=000000c20f362282
Extra: Last beacon: 200ms ago
IE: Unknown: 000C6A296D657A612D5F77626669
IE: Unknown: 010822848B960C183248
IE: Unknown: 030206
IE: Unknown: 052200012000
IE: Unknown: 2A0200
IE: Unknown: 320222246062
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK

IE: Unknown: DD0910227F0101020CFF2F
IE: Unknown: DD0C22037F020101740222A31200
IE: Unknown: DD1A00227F0301000000001B124D0F5C021B214D0F5C64022C010101

virbr0    Interface doesn’t support scanning.

Activar la interfaz de red inalámbrica (de ser necesario).

$ sudo ifconfig wlan0 up

Conectarse a la red con el ESSID elegido.

$ sudo iwconfig wlan0 essid “jimezam_wifi

Especificar la información de conexión WPA.

$ wpa_passphrase jimezam_wifi > /tmp/wpa.conf
<ESCRIBIR LA CLAVE DE LA RED + ENTER>

$ cat /tmp/wpa.conf

network={
ssid=”jimezam_wifi
#psk=”asdf1234″
psk=8547559596f0441d0dab4f960b00bd278927905fc8b2ee3c5d06f8d3b9d22a45
}

Realizar la negociación de la WPA.

$ sudo wpa_supplicant -Dwext -iwlan0 -c/tmp/wpa.conf

CTRL-EVENT-SCAN-RESULTS
Trying to associate with 00:1b:2f:4d:0f:5c (SSID=’jimezam_wifi‘ freq=2437 MHz)
Association request to the driver failed
Associated with 00:1b:2f:4d:0f:5c
WPA: Key negotiation completed with 00:1b:2f:4d:0f:5c [PTK=TKIP GTK=TKIP]
CTRL-EVENT-CONNECTED – Connection to 00:1b:2f:4d:0f:5c completed (auth) [id=0 id_str=]

Liberar cualquier dirección IP asociada a la interfaz.

$ sudo dhclient -r wlan0

Internet Systems Consortium DHCP Client V3.1.2
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/wlan0/00:08:54:ab:83:2d
Sending on   LPF/wlan0/00:08:54:ab:83:2d
Sending on   Socket/fallback
DHCPRELEASE on wlan0 to 192.168.1.1 port 67
send_packet: Network is unreachable
send_packet: please consult README file regarding broadcast address.

Solicitar una nueva dirección al servidor de DHCP.

$ sudo dhclient wlan0

Internet Systems Consortium DHCP Client V3.1.2
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/wlan0/00:08:54:ab:83:2d
Sending on   LPF/wlan0/00:08:54:ab:83:2d
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
DHCPOFFER of 192.168.1.5 from 192.168.1.1
DHCPREQUEST of 192.168.1.5 on wlan0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.5 from 192.168.1.1
bound to 192.168.1.5 — renewal in 35008 seconds.

Probar la conexión.

$ ping www.google.com

PING www.l.google.com (74.125.157.103) 56(84) bytes of data.
64 bytes from gy-in-f103.1e100.net (74.125.157.103): icmp_seq=1 ttl=53 time=72.6 ms
64 bytes from 74.125.157.103: icmp_seq=3 ttl=53 time=74.8 ms
64 bytes from gy-in-f103.1e100.net (74.125.157.103): icmp_seq=4 ttl=53 time=80.6 ms

A posteriori.

Como mencioné anteriormente, la intención era lograr el acceso a Internet a través de la red inalámbrica disponible, sin embargo esta configuración es tenporal y al reiniciar el servidor se tendrían que repetir los pasos finales nuevamente.

En mi caso instalé el ambiente gráfico de Ubuntu (escritorio GNOME) y su herramienta de administración de redes (descrita a continuación) para realizar la configuración permanente de la conexión a la red inalámbrica.

Por motivos de seguridad es muy conveniente remover o ubicar en un sitio seguro al archivo con la información de WPA (/tmp/wpa.conf en este caso).

Acerca del administrador de redes de Ubuntu.

Si se realizó la instalación básica de Ubuntu, es decir, con la opción –without-recommends es probable no se cuente con la herramienta para configurar fácilmente las interfaces de red del servidor.  Para instalarla es necesario ejecutar el siguiente comando.

$ sudo aptitude install network-manager

Enlaces.

Como instalar los paquetes del escritorio en Linux Ubuntu Server 9.10

Introducción.

Como es muy bien conocido, la instalación de la distribución de Linux Ubuntu Server no incluye por defecto al servidor de ventanas ni a un manejador de ventanas (GNOME por ejemplo), esto debido a que como servidor, por razones de seguridad y desempeño, supuestamente no necesita este tipo de interfaz gráfica.

Algunas veces, como en mi caso, quisiera disponer de una interfaz gráfica en mi “servidor” para admnistrarlo fácilmente, trabajar en él como estación de trabajo también (no recomendado en un servidor real) y para implementar posteriormente registros de usuarios remotos.

Para Ubuntu el proceso de instalación es prácticamente una instrucción.

Procedimiento.

Actualizar la información de los repositorios.

$ sudo aptitude update

Instalar el administrador de ventajas deseado.  Ejecute uno de los siguientes comandos según desee instalar GNOME, KDE o XFCE.

$ sudo aptitude install ubuntu-desktop

$ sudo aptitude install kubuntu-desktop

$ sudo aptitude install xubuntu-desktop

Este procedimiento instala además del administrador de ventanas y escritorio, software adicional (como Evolution, OpenOffice y similares) que posiblemente no desee que se instale automáticamente en su servidor.  Si desea evitar este comportamiento por defecto agregue el modificador –without-recommends a la línea de comando de la siguiente manera.

$ sudo aptitude install –without-recommends ubuntu-desktop