Páginas

lunes, 28 de febrero de 2011

Server Gentoo

Instalamos un servidor utilizando una distribucion Debian, Gentoo, etc. (Basicamente es lo mismo), y openssh. El nombre de usuario que utilizo es gentoo y le asigno un passwd.

Cuando finalice la instalacion, debería acceder al sistema desde la consola remota de su escritorio. La recomendacion es realizar las labores de administracion desde otro sistema (por ejemplo, un portatil), porque un servidor seguro se ejecuta en modo headless, es decir, ejecutar aplicaciones sin monitor y teclado. Es una buena costumbre administrar su servidor de esta manera. En la maquina remota solo necesita un cliente SSH, incluido en todas las distros Linux.

Iniciar el server SSH en el servidor
# /etc/init.d/sshd start
 * Starting sshd ...                 [ ok ]

Agregarlo al inicio del sistema:
# rc-update add sshd default
 * sshd added to runlevel default

La maquina que hara de servidor se llama tux.
La que hara de cliente se llama hypatia.

Conectar con el servidor a traves de SSH por primera vez:
gentoo@hypatia ~ $ ssh gentoo@tux.zapto.org
The authenticity of host 'tux.zapto.org (192.168.1.130)' can't be established.
RSA key fingerprint is 22:17:b0:c8:c0:0d:d7:ca:ad:1a:0f:8e:9c:5d:11:f5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'tux.zapto.org,192.168.1.130' (RSA) to the list of known hosts.
Password:
Last login: Mon Feb 28 14:49:41 CET 2011 from hypatia.zapto.org on pts/1
gentoo@tux ~ $

Autenticarse como root:
gentoo@tux ~ $ su
passwd:

Configurar el servidor con una direccion IP estatica:
# vim /etc/conf.d/net
# ip estatica gw 192.168.1.1
config_eth0=( "192.168.1.130/24" )
routes_eth0=( "default via 192.168.1.1" )

Los DNS del proveedor ISP:
# vim /etc/resolv.conf
# /etc/resolv.conf.head can replace this line
nameserver 87.216.1.65
nameserver 87.216.1.66

Para impedir la modificacion del archivo /etc/resolv.conf
# chattr +i /etc/resolv.conf
# lsattr /etc/resolv.conf
----i---------- /etc/resolv.conf

Reiniciar la interfaz de red:
 # /etc/init.d/net.eth0 restart
 * Stopping eth0
 *   Bringing down eth0
 *     Stopping netplug on eth0 ...   [ ok ]
 *     Shutting down eth0 ...         [ ok ]
 * Starting eth0
 *   Starting netplug on eth0 ...     [ ok ]
 *     Backgrounding ...

Editar /etc/hosts para agregar la direccion IP:
# IPv4 and IPv6 localhost aliases
127.0.0.1       localhost
::1             localhost
127.0.0.1       google-analytics.com
127.0.0.1       ssl.google-analytics.com
# 192.168.1.128   server1.zapto.org server1
192.168.1.129   hypatia.zapto.org hypatia
192.168.1.130   tux.zapto.org tux

El nombre de host se configura con estos comandos:
# echo tux > /etc/hostname
# /bin/hostname -F /etc/hostname

Configurar el nombre de dominio:
# vim /etc/conf.d/net
# ip estatica gw 192.168.1.1
config_eth0=( "192.168.1.130/24" )
routes_eth0=( "default via 192.168.1.1" )
# nombre de dominio
dns_domain_lo="zapto.org"

Ahora comprobar que la configuracion es correcta:
# hostname
tux
# hostname -f
tux.zapto.org

Para restringuir el acceso SSH a hosts LAN, añadimos esta regla al firewall del servidor:
# firewall /usr/local/bin/fw_host
ipt="/sbin/iptables"
LAN_IFACE="eth0"
#
...
$ipt -A INPUT -i $LAN_IFACE -s 192.168.1.0/24 -p tcp --dport 22 --sport 1024:65535 -m state --state NEW -j ACCEPT
...
...

El archivo /etc/hosts de la maquina cliente (hypatia) estan identificados, tambien, los hosts de la red:
127.0.0.1    localhost
::1        localhost
127.0.0.1    google-analytics.com
127.0.0.1    ssl.google-analytics.com
# 192.168.1.128    server1.zapto.org server1
192.168.1.129    hypatia.zapto.org hypatia
192.168.1.130    tux.zapto.org tux   
#

Configurar ip estatica en la maquina cliente (hypatia) y el nombre de dominio:
hypatia gentoo # vim /etc/conf.d/net
# ip estatica gw 192.168.1.1
config_eth0=( "192.168.1.129/24" )
routes_eth0=( "default via 192.168.1.1" )
# nombre de dominio
dns_domain_lo="zapto.org"

Linux es genial!.

jueves, 3 de febrero de 2011

Gentoo Pentium 4 3.2GHz

Instalar Gentoo en una maquina Pentium 4 (EMT64)

Instalar Gentoo en un ordenador portatil o sobremesa es una tarea al alcance de todos con la documentacion existente en el sitio web de Gentoo Linux. Pero ademas es necesario saber el stage3 y version del kernel que mejor se adapta a nuestra maquina.

# lspci | grep -i vga
01:00.0 VGA compatible controller: ATI Technologies Inc RV516 [Radeon X1300/X1550 Series]

# lsusb | grep -i wireless
Bus 001 Device 002: ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter

Es un Pentium 4 con un precesador a 3.2 GHz y 1Gb de memoria DDR a 800 Mhz. Placa base Asus, tarjeta grafica Ati Technologies Inc RV516 [Radeon X1300/X1550 Series], tarjeta inalambrica con chipset Realtek 8187

Esta instalacion fue realizada utilizando Gentoo minimal cd 3.09 siguiendo, como no, el exelente proyecto manual de Gentoo (handbook).

Stage: stage3-amd64-20101226.tar.bz2
kernel: 2.6.32-gentoo-r24

Nota: no utilizo acentos.
Despues de iniciar con el cd Minimal de Gentoo compruebo el modulo de la tarjeta wireless (en mi caso, chipset rtl8187), con el comando:

# lsmod  | grep rtl8187
rtl8187                51330  0
mac80211              121005  3 rtl8187
cfg80211              120958  4 rtl8187, mac80211
led_class               2115  2 rtl8187,sdhci
eeprom_93cx6            1208  1 rtl8187
usbcore               113420  8 rtl8187,sl811_hcd,usbhid,ohci_hcd,uhci_hcd,usb_storage,ehci_hcd

Es una tarjeta inalambrica conectada a un puerto usb que me interesa por su potencia 2W. No me interesa utilizar la wifi conectada a la ranura pci con chipset ath5k, asi que descargo el modulo y lo coloco en blacklist para que no se cargue nuevamente al reiniciar el sistema
# modprobe -r ath5k
# echo "blacklist ath5k" >> /etc/modprobe.d/blacklist

Conocer los modulos del kernel proporcionados por gentoo para la red (wired y wireless respectivamente):
# ls /lib/modules/2.6.34-gentoo-r1/kernel/drivers/net/
3c59x.ko     defxx.ko      ixgbe        s2io.ko      sungem_phy.ko
8139cp.ko    dl2k.ko       mdio.ko      sb1000.ko    sunhme.ko
8139too.ko   dnet.ko       mlx4         sc92031.ko   tehuti.ko
.....
.....

# ls /lib/modules/2.6.34-gentoo-r1/kernel/drivers/net/wireless/
hostap/  rt2x00/  rtl818x/

Averiguar el nombre de la interfaz de red:
# ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:21:9b:e2:cd:44 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:168 errors:0 dropped:0 overruns:0 frame:0
          TX packets:168 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5732 (5.5 KiB)  TX bytes:5732 (5.5 KiB)

wlan0     Link encap:Ethernet  HWaddr 00:1f:3c:bf:a0:3c 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Configurar conexión alámbrica eth0:
# ifconfig eth0 192.168.1.242 netmask 255.255.255.0
# route add default gw 192.168.1.1
# ping www.gentoo.org
PING www-bytemark.gentoo.org (89.16.167.134) 56(84) bytes of data.
64 bytes from www.gentoo.org (89.16.167.134): icmp_req=1 ttl=252 time=80.6 ms
64 bytes from www.gentoo.org (89.16.167.134): icmp_req=2 ttl=252 time=78.9 ms
64 bytes from www.gentoo.org (89.16.167.134): icmp_req=3 ttl=252 time=79.7 ms
^C
--- www-bytemark.gentoo.org ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3004ms
rtt min/avg/max/mdev = 78.902/79.779/80.655/0.786 ms
Para conectar a Internet utilizando una tarjeta inalámbrica Gentoo dispone de la herramienta incluida en el cd, perteneciente al paquete livecdtools, llamada net-setup
# net-setup wlan0
A traves de una sencilla interfaz grafica nos preguntara entre otras cosas el nombre del essid, contraseña de red y por ultimo si utiliza dhcp para obtener una ip automaticamente.

Comprobar la conexion haciendo ping:
# ping -c 3 www.gentoo.org

Todo esta documentado en:
http://www.gentoo.org/doc/es/handbook/
Gentoo linux es con toda probalidad la distribucion mejor documentada.

Particionar el disco con una herramienta como gparted (grafica) incluida en el systemrescuecd o con fdisk. En mi caso el disco duro queda particionado de la manera siguiente:

/dev/sda2 ext2 /boot (de 100 MB) particion de arranque
/dev/sda3 ext3 /     (de 20 GB)
/dev/ada5 swap       (de 1 GB)
/dev/sda6 ext3 /home (de 10 GB)
/dev/sda7 reiserfs /usr/portage (de 11 GB)

Inicializar y activar la particion swap:
# mkswap /dev/sda5
# swapon /dev/sda5

Ha llegado el momento de montar las particiones.
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda2 /mnt/gentoo/boot

De momento no utilizo las particiones /dev/sda6 (home) ni la particion /dev/sda7 (portage), mas adelante las separaremos del resto del sistema.

Ajustar fecha/hora correcta
# date
Si fuera necesario actualicela con el comando date:
# date mesdiahoraminutosaño por ejemplo, 4 de febrero del 2011 a las 14:31
# date 020414312011

Ir al punto de montaje de gentoo y descargar el stage3 stage3-amd64-20101226.tar.bz2 desde uno de los servidores de replica de gentoo linux, directorio releases/amd64/autobuilds. Para descargar el archivo presionar D. Para salir del navegador links presione Q:
# cd /mnt/gentoo
# links http://www.gentoo.org/main/en/mirrors.xml

Descomprimir el stage
# tar xjvpf stage3-amd64-20101226.tar.bz2

Descargar e instalar una imagen de portage
# links http://www.gentoo.org/main/en/mirros.xml

Descomprimir portage
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

Configurar las opciones de compilacion editando el archivo /etc/make.conf para Pentium 4 con un precesador a 3.2 GHz y 1Gb de memoria DDR a 800 Mhz x86_64:

CFLAGS="-march=nocona -02 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}

Seleccionar los servidores replica con la herramienta mirrorselect proporcionada por gentoo:
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf

Configurar variable SYNC para actualizar portage.
# mirrorselect -i -o -r >> /mnt/gentoo/etc/make.conf

Instalar temporalmente vim dentro del stage3:
VIM=$(which vim)
VIMDIR=$(dirname ${VIM})
cp --dereference ${VIM} /mnt/gentoo${VIM}
ln --symbolic ${VIM} /mnt/gentoo$(dirname ${VIM})/vi

Copiar la informacion de los DNS en /etc/resolv.conf
# cp -L /etc/resolv.conf /mnt/gentoo/etc/

Los sistemas de archivos /proc y /dev seran montados con los comandos:
# mount -t proc none /proc /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

Entrar en el nuevo entorno de instalacion chrooting:
# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile
# export PS1="(chroot) $PS1"

Actualizar portage
# emerge --sync

Para forzar la descarga e instalacion del kerel 2.6.32-gentoo-r24 hay que hacer algunos cambios en el fichero /etc/portage/package.mask, concretamente:

echo ">sys-kernel/gentoo-sources-2.6.36-r5" >> /etc/portage/package.mask
echo "=sys-kernel/gentoo-sources-2.6.36-r5" >> /etc/portage/package.mask
echo "=sys-kernel/gentoo-sources-2.6.35-r15" >> /etc/portage/package.mask

Comprobar que se descargara e instalara el kernel elegido:
# emerge -s gentoo-sources

# uname -a
Linux tux 2.6.32-gentoo-r24 #1 SMP Tue Feb 1 10:22:14 CET 2011 x86_64 Intel(R) Pentium(R) 4 CPU 3.20GHz GenuineIntel GNU/Linux

Antes que me olvide el tema de las fuentes en la consola, para visualizar correcatamente la ñ y los acentos en la terminal:
Cambiando la fuente de xterm

(en su directorio home)
# echo 'XTerm*font: fixed' >> .Xresources 


Configuración en Español o Inglés y UTF-8


Fuente: http://wiki.luispa.com/index.php/HowTo:gentoo:utf8

- Configuración del Kernel

Configuración del kernel de Linux: File Systems

File Systems
 Native language support
   (utf8) Default NLS Option       
   :
   -*-   NLS UTF-8 

    * Fichero locale.gen y generación de los locales

Fichero: /etc/locale.gen

 en_US ISO-8859-1
 en_US.UTF-8 UTF-8
 es_ES ISO-8859-1
 es_ES@euro ISO-8859-15
 es_ES.UTF-8 UTF-8
 # Soporte de Inglés y Español
 en_US.UTF-8@euro UTF-8
 es_ES.UTF-8@euro UTF-8

Genero los locales:

# locale-gen
* Generating 7 locales (this might take a while) with 1 jobs
*  (1/7) Generating en_US.ISO-8859-1 ...                                 [ ok ]
*  (2/7) Generating en_US.UTF-8 ...                                      [ ok ]
*  (3/7) Generating es_ES.ISO-8859-1 ...                                 [ ok ]
*  (4/7) Generating es_ES.ISO-8859-15@euro ...                           [ ok ]
*  (5/7) Generating es_ES.UTF-8 ...                                      [ ok ]
*  (6/7) Generating en_US.UTF-8.UTF-8@euro ...                           [ ok ]
*  (7/7) Generating es_ES.UTF-8.UTF-8@euro ...                           [ ok ]
* Generation complete

    * Zona horaria, en mi caso en la península

cp /usr/share/zoneinfo/Europe/Madrid /etc/localtime

    * Fichero rc.conf

Fichero: /etc/rc.conf

 UNICODE="yes"
 CONSOLEFONT="lat9v-16"

    * Fichero 02locale

Fichero: /etc/env.d/02locale para que el lenguaje de las aplicaciones sea ESPAÑOL

 LC_ALL="es_ES.UTF-8"
 LC_COLLATE="es_ES.UTF-8"
 LC_CTYPE="es_ES.UTF-8"
 LC_MESSAGES="es_ES.UTF-8"
 LC_MONETARY="es_ES.UTF-8"
 LC_NUMERIC="es_ES.UTF-8"
 LC_PAPER="es_ES.UTF-8"
 LANG="es_ES.UTF-8"

    * Fichero consolefont

Fichero: /etc/conf.d/consolefont

 CONSOLEFONT="lat9w-16"


    * Fichero keymaps

Fichero: /etc/conf.d/keymaps

 KEYMAP="-u es"
 SET_WINDOWKEYS="yes"
 EXTENDED_KEYMAPS="backspace euro2"
 DUMPKEYS_CHARSET=""

    * La zona horaria y el reloj

Fichero: /etc/conf.d/clock

 CLOCK="local"
 TIMEZONE="Europe/Madrid"
 CLOCK_OPTS=""
 CLOCK_SYSTOHC="yes"

    * El servidor rsync

Fichero: /etc/rsyncd.conf

# Soporte utf-8, en la parte global del fichero
:
charset = utf-8


continuara...
Linux es genial!.