InicioLinuxServidor gentoo


Este material se puede considerar una guía, donde explico como instalé un servidor gentoo en una AMD 64.

En la web de gentoo esta la guía oficial donde enseña como instalar en todo tipo de hardware.



La guía que yo use es esta:




En algunos momentos opté por opciones "recomendadas" o "por defecto", si algún usuario con experiencia tiene algo para aportar, el post esta abierto a toda sugerencia y/o comentario.



Actualización 1/12/2012

Teniendo el cuenta los comentarios de los usuarios, y con la colaboración del usuario @cxs00 procedí a crear una partición /var separada de la raíz.

También se modifico el archivo make.conf y el genkernel.conf para acelerar el compilado, definir que tipo de procesador tiene el servidor, pide confirmación antes de instalar algo y soluciona problemas de dependencias al instalar software nuevo.


Conclusiones de la actualización:

El servidor al tener /var por separado evitamos que la raíz se llene y colapse el sistema.

La compilación del núcleo se completó unos minutos antes en esta oportunidad.
Se resuelven los problemas de dependencias al instalar software, y pregunta cada vez que se esta por instalar un nuevo software.




Descargar el iso de gentoo

Lo primero es descargar el iso de gentoo, nos dirigimos en su sitio oficial http://www.gentoo.org/








Luego de descargar el iso grabarlo en un CD o transferirlo en un pendrive.





Instalando el sistema

Iniciamos la instalación desde el medio que contiene el iso de gentoo.

Presionamos enter





esperamos que cargue el sistema





seleccionamos el tipo de teclado










verificamos la red

ifconfig

solo red interna estamos teniendo







verificamos todas las interfaces detectadas

ifconfig -a

la interface primaria a activar es eth0






net-setup eth0

Se iniciará un asistente para configurar la red, respondemos a las preguntas típicas de una configuración de red








verificamos que ya disponemos de una ip asignada por el router,

ifconfig eth0 | grep "inet addr"

netstat -r





revisamos los datos correspondientes para la resolución de nombres
more /etc/resolv.conf





cargamos los dns ya que el comando anterior nos demuestra que no tenemos

echo nameserver 208.67.220.220 > /etc/resolv.conf
echo nameserver 208.67.222.222 >> /etc/resolv.conf
ping -c 2 www.google.com









Particionar el disco con parted


Vamos a utilizar parted, ya que admite particiones mayores de 2 TB (fdisk no puede)


En la consola escribimos:

parted

con el comando help se muestra el uso de parted

help



como dice la ayuda, se usa print para ver nuestro disco duro

print

mklabel gpt para crear una etiqueta GPT

mklabel gpt




Vamos a usar un esquema de particionado el cuál nos permita tener /boot /var y /home en particiones diferentes a la raíz /, en el siguiente gráfico se detalla como será.




Crear una partición /boot de 100mb que ocupe desde 0mb al 100 MB

mkpart primary ext2 0 100mb

a la advertencia respondemos con i


crear una partición / de 20480 MB que ocupe desde 100mb al 20580mb
mkpart primary ext4 100 20580mb


crear una partición de intercambio de 1024 mb que ocupe desde 20580mb al 21604mb
mkpart primary linux-swap 20580 21604mb



crear una partición /var de 20480 MB que ocupe desde 21604mb al 42084mb
mkpart primary ext4 21604 42084mb



crear una partición /home que ocupe todo el espacio restante del disco.
-1s (menos uno s) indica el final del disco

mkpart primary ext4 42084mb -1s


print
para ver los cambios realizados.



quit
para salir.

En esta imagen se aprecia todo el procedimiento de particionado








Formateando las particiones

Procedemos a formatear las particiones recién creadas:

mkfs.ext2 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda4
mkfs.ext4 /dev/sda5
mkswap /dev/sda3







activamos la partición de intercambio

swapon /dev/sda3






Montaje

Verificamos la disposición de las particiones:

ls -1 /dev/sda*




Ahora que las particiones están inicializadas y albergan sistemas de ficheros, es hora de montarlas. Utilice la orden mount y creamos los puntos de montaje necesarios para cada partición que haya creado en el siguiente orden:

mount /dev/sda2 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
mkdir /mnt/gentoo/var
mount /dev/sda4 /mnt/gentoo/var
mkdir /mnt/gentoo/home
mount /dev/sda5 /mnt/gentoo/home









Ajustar la Fecha/Hora correcta

En este punto, se debería usar la hora UTC. Podrá utilizar su propia zona horaria más adelante.

date




Si la fecha/hora está equivocada, actualícela con la orden date MMDDhhmmAAAA, con la siguiente sintaxis (Mes, Día, hora, minuto y Año)





Descargar stage3 y portage


Bajamos el stage 3

Navegando desde la consola

cd /mnt/gentoo

links http://gentoo.localhost.net.ar/releases/amd64/current-stage3








nos movemos con los cursores hasta seleccionar el archivo stage3-amd64-20121107.tar.bz2 y lo descargamos







En caso que se quiera descargar de otro servidor, puede obtener una lista de servidores réplica de aca:


javascript:void(0)






Luego descargamos el archivo stage3-amd64-20121107.tar.bz2.DIGESTS

este archivo es muy pequeño, nada no tarda en descargar.

Ahora salga del navegador presionando Q





Verificando el stage3 descargado


A continuación compare la salida de estas órdenes con el valor registrado en los ficheros con extensión .DIGESTS que puede encontrar en los servidores réplica. Los valores deben coincidir, de lo contrario, los ficheros descargados podrían estar corruptos.

Nos situamos en el directorio que se descargo.



sha512sum stage3-*.tar.bz2

more stage3-*.DIGESTS.bz2




Si todo esta bien, desempaquetamos el stage3 descargado. Usaremos tar para dicha labor ya que este es el método más fácil.


tar xvjpf stage3-*.tar.bz2

ACA NUEVA IMAGEN ANTES DE DESCOMPRIMIR Y DESPUES






Descargamos el portage para nuestro sistema

wget http://gentoo.localhost.net.ar/snapshots/portage-latest.tar.bz2



wget http://gentoo.localhost.net.ar/snapshots/portage-latest.tar.bz2.md5sum





Comprobar la integridad de una imagen de portage

md5sum -c portage-latest.tar.bz2.md5sum





Descomprimir la imagen de Portage


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







Configurando las opciones de compilación

Para optimizar Gentoo, tendrá que ajustar un par de variables que afectarán el comportamiento de Portage.


vi /mnt/gentoo/etc/portage/make.conf

presionamos i para editar y completamos con los siguientes datos

CFLAGS="-march=native -pipe"
MAKEOPTS="-j2 -l1"
EMERGE_DEFAULT_OPTS="--jobs=2 --load-average=1.85 --ask --with-bdeps=y"







Una vez que hayamos terminado de insertar/modificar el fichero, pulsamos la tecla escape para salir del modo edición.

Para guardar los cambios hechos en el fichero, y salir:

:x

Esta optimización es para un procesador de 1 núcleo, para entender las opciones usadas visitar:







Servidores réplica

Para poder descargar el código fuente rápidamente se recomienda seleccionar un servidor réplica rápido. Use la herramienta mirrorselect la cual proporciona una interfaz amigable para seleccionar los servidores réplicas que quiera. Simplemente navegue a los servidores réplica que desee y pulse la barra espaciadora para seleccionar uno o más servidores.

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf







Otra importante configuración es la variable SYNC en make.conf. Esta variable contiene el servidor rsync que quiere utilizar para actualizar su árbol Portage (la colección de ebuilds, guiones que contienen toda la información que Portage necesita para descargar e instalar software).

Seleccionar un servidor rsync utilizando mirrorselect

mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf






Copiar la información DNS

cp -L /etc/resolv.conf /mnt/gentoo/etc




Montar los sistemas de archivos necesarios


Monte el sistema de ficheros /proc en /mnt/gentoo/proc para poder usar la información proporcionada por el núcleo dentro del entorno chroot y luego monte el sistema de ficheros /dev y /sys.

Montar /proc y /dev

mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev









Entrando al nuevo entorno

El enjaulamiento (chroot) se hace en tres pasos. Primero cambiamos la raíz desde / (en el medio de instalación) a /mnt/gentoo (en sus particiones) usando chroot. Después crearemos un nuevo entorno usando env-update, el cual, en esencia crea las variables de entorno. Finalmente, cargamos esas variables en memoria tecleando source.


chroot /mnt/gentoo /bin/bash
env-update





source /etc/profile
export PS1="(chroot) $PS1"









Actualizando el árbol portage

Debería actualizar ahora su árbol portage a la última versión. emerge --sync hará esto por nosotros.


emerge --sync




Si se le ha advertido que está disponible una nueva versión de portage debe actualizar con el siguiente comando:

emerge --oneshot portage






es recomendable leer los mensajes informativos.

eselect news list





eselect news read 1





y así proceder con cada uno de los mensajes.






Seleccionar el perfil adecuado

Primero, una pequeña definición:

Un perfil es la piedra inicial de cualquier sistema Gentoo. No solamente especifica unos valores predeterminados para USE, CFLAGS, y otras variables importantes, también bloquea del sistema ciertos rangos de versiones de algunos paquetes.



Se puede ver el perfil actualmente utilizado con la siguiente orden:


eselect profile list




Cambiar de perfil

eselect profile set 8

y verificamos los cambios

eselect profile list





Si quiere disponer de un entorno puramente de 64 bits puros, sin aplicaciones de 32 bits ni bibliotecas, debería utilizar un perfil no multilib:





Configurando el kernel

Zona Horaria

Primero necesita seleccionar su zona horaria para que su sistema sepa dónde está localizado.

ls /usr/share/zoneinfo





ls /usr/share/zoneinfo/America




cp /usr/share/zoneinfo/America/Asuncion /etc/localtime

echo "America/Asuncion" > /etc/timezone








Instalar las Fuentes


Elegir un Núcleo

El eje alrededor del cual se construyen todas las distribuciones es el núcleo de Linux. Es la capa entre los programas de usuario y el hardware del sistema.

Para los sistemas basados en AMD64 tenemos, entre otros núcleos, gentoo-sources (fuentes del núcleo modificadas para obtener algunas características adicionales).

emerge gentoo-sources







Ahora que el árbol de las fuentes del núcleo está instalado, es hora de compilarlo usando nuestro guión genkernel que automáticamente construirá un núcleo.

Esto significa que cuando use genkernel para construir su núcleo, su sistema generalmente detectará todo su hardware en el arranque, tal como lo hace el CD de instalación.

(en esta parte más de uno va a decirme que es conveniente compilar manualmente el kernel, le respondo que tiene razón y que esto lo dejo pendiente para un proximo post)


emerge genkernel


echo 'MAKEOPTS="-j2 -l1"' >> /etc/genkernel.conf




verificamos que todo este bien:

more /etc/genkernel.conf





Ahora, compilar las fuentes del núcleo ejecutando genkernel all, recuerde que genkernel compila un núcleo que soporta casi todo el hardware, esta compilación tardará un largo rato en completarse.

genkernel all







Una vez que genkernel haya terminado, tendrá un núcleo, un conjunto completo de módulos y un disco ram de inicio (initramfs).





Configurando su sistema

Información del Sistema de Ficheros

En Linux, todas las particiones usadas por el sistema deben estar reflejadas en /etc/fstab. Este fichero contiene los puntos de montaje de esas particiones (donde se encuentran en la estructura del sistema de ficheros), cómo deben ser montadas y con que opciones especiales.

nano -wB /etc/fstab





y creamos un punto de montaje para el cdrom
mkdir /mnt/cdrom






Información de red


Una de las elecciones que un usuario ha de hacer es el nombre de su PC.

nano -wB /etc/conf.d/hostname
(Configure la variable hostname con el nombre del anfitrión)
hostname="servidor"






Configurando la Red

Toda la información de red esta reunida en /etc/conf.d/net.


Configurar manualmente la información IP para eth0, usando los datos recopilados al principio del tutorial.

config_eth0="192.168.0.102 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.253"





en caso que quiera obtener una dirección IP automáticamente para eth0 cambiar el siguiente valor:

config_eth0="dhcp"




Configurar el dominio NIS

Si tiene un dominio NIS, necesita definirlo ahora, en mi caso pondré uno ficticio ya que no tengo uno:


nano -wB /etc/conf.d/net

nis_domain_lo="red.local"





Inicio automático de red en el arranque

Para disponer de su interfaz de red activada en el arranque, necesita agregarla al nivel de ejecución por defecto (default).

Agregar net.eth0 al nivel de ejecución por defecto (default)

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default




Si tiene distintas interfaces de red, necesitara crear los correspondientes net.eth1, net.eth2 etc.




Archivo hosts

nano -wB /etc/hosts








Contraseña de administrador (Root)

Fijamos la contraseña de administrador escribiendo:


passwd




Gentoo utiliza /etc/conf.d/keymaps para gestionar la configuración del teclado. Edítelo y configure su teclado.

Editar /etc/conf.d/keymaps

nano -wB /etc/conf.d/keymaps





Gentoo utiliza /etc/conf.d/hwclock para fijar las opciones del reloj. Edítelo de acuerdo a sus necesidades.

Modificar /etc/conf.d/hwclock

nano -wB /etc/conf.d/hwclock

Si su reloj de hardware no utiliza UTC, añada clock="local" al archivo.


La mejor opcion es dejarlo en "UTC"

y cambiar el valor

clock_hctosys="YES"


a

clock_hctosys="NO"








Configurar localizaciones

Probablemente utilice únicamente una o dos localizaciones (locales) en su sistema. Debe especificar las localizaciones que utilizará en el fichero /etc/locale.gen.

Abrir /etc/locale.gen

nano -wB /etc/locale.gen





Las posibles opciones ver en:
/usr/share/i18n/SUPPORTED



El siguiente paso es ejecutar locale-gen. Se generarán las localizaciones que ha especificado en el fichero /etc/locale.gen.

locale-gen




Una vez realizado el paso anterior, tendrá la posibilidad de ajustar las definiciones que afectan a todo el sistema en el fichero /etc/env.d/02locale:

Definir la localización por defecto del sistema, creamos el archivo:

nano -wB /etc/env.d/02locale





Recargar el entorno del intérprete de comandos

env-update && source /etc/profile








Instalando el gestor de arranque grub

emerge grub


Escriba los nombres del núcleo y de initrd ya que los necesitará para el archivo de configuración del gestor de arranque, podrá obtener esos datos con el siguiente comando:

ls /boot/kernel* ; /boot/initramfs*





Edite el archivo /boot/grub/grub.conf con nano, o cualquier otro editor:

nano -wB /boot/grub/grub.conf


# Qué título arrancar por defecto. 0 es el primero, 1 el segundo, etc.
default 0

# Cuantos segundos esperar antes de arrancar el título por defecto.
timeout 5

title Gentoo Linux 3.5.7
# Partición donde se encuentra la imagen del núcleo (o sistema operativo)
root (hd0,0)
kernel /boot/kernel-genkernel-x86_64-3.5.7-gentoo root=/dev/ram0 real_root=/dev/sda2
initrd /boot/initramfs-genkernel-x86_64-3.5.7-gentoo






Configurando el gestor de arranque

Para comenzar a configurar GRUB, debe ejecutar los comandos dentro de grub. Se le presentará el intérprete de comandos propio de grub grub>.
Ahora necesita ejecutar los comandos necesarios para instalar el registro de arranque de GRUB en su disco duro.




Iniciar GRUB desde el intérprete de comandos

En el ejemplo de configuración queremos instalar GRUB para que lea la información de la partición de arranque /dev/sda1, e instala el registro de arranque de GRUB en el MBR (Master boot Record) de su disco duro para que lo primero que veamos aparecer al encender el ordenador sea GRUB.

En mi caso, utilizo la opción --no-floppy ya que no tengo ningún dispositivo de disquetes.

Instalando GRUB en el MBR

grub --no-floppy
grub> root (hd0,0) (Especifique donde tiene su partición /boot)
grub> setup (hd0) (Instalamos GRUB en el MBR)
grub> quit (Salimos del intérprete de comandos de GRUB)









Iptables


¿De que sirve un servidor sin una protección básica?

Vamos a instalar iptables

emerge iptables


Ahora compruebe que iptables funciona ejecutando iptables -nL

iptables -nL



El resultado del comando anterior nos muestra que iptables está activo pero no tiene ninguna regla.




Firewall básico


Bloquear solo el tráfico entrante

Este firewall sirve para proteger el servidor, descarta todos los paquetes entrantes/reenviados, permite el tráfico saliente, acepta conección ssh desde una sola IP y abre el puerto 80 (apache) para todos.


iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate  ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.101 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT






Esto se puede mejorar mucho todavía, pero para efectos de este tutorial ya alcanza, quien desee profundizar pasar por mis post de iptables.





Guardamos la configuración en un archivo

pwd

/root

iptables-save > reglas





creamos un pequeño script para que restablezca las reglas cuando se reinicia el sesvidor:

nano /etc/init.d/firewall

#!/sbin/runscript
iptables-restore < /root/reglas






chmod +x /etc/init.d/firewall

rc-update add firewall default



Al reiniciar el sistema las reglas de iptables estarán activas nuevamente





Reiniciando el sistema

exit
cd
umount -l /mnt/gentoo/dev{/pts,/shm,}
umount -l /mnt/gentoo{/boot,/home,/var,/sys,/proc,}
reboot









Post install





Ya en la entrada del sistema vemos un mensaje que dice ".unknown_domain", eso se arregla editando /etc/issue




nano /etc/issue

Simplemente elimine el texto .\O
de ese archivo.



Resultado:





Revisamos las reglas del firewall

Verificamos que las reglas del firewall estan activas:

iptables -nL






Limpieza de disco

Eliminar los tarballs

Ahora que ya se ha instalado Gentoo y reiniciado, si todo fue bien, puede eliminar el tarball de stage3 y la imagen de Portage. que descargó en su disco duro. Recordamos que se encuentran en el directorio /.


rm /stage3-*.tar.bz2* ; rm /portage-latest.tar.bz2*








Cuentas de Usuarios


Añadir un usuario para uso diario





Si alguna vez este usuario necesita realizar alguna tarea como root, puede utilizar su




Los grupos a los que pertenece el usuario definen que actividades puede realizar. La siguiente tabla muestra una lista de los grupos más importantes que podría querer utilizar.

Grupo-----Descripción

audio------para ser capaz de acceder a los dispositivos de audio
cdrom-----para poder acceder directamente a dispositivos de lectura óptica
floppy------para poder acceder directamente a los dispositivos de disquete
games-----para poder utilizar los juegos
portage----para ser capaz de utilizar emerge --pretend como usuario normal
usb---------para poder acceder a los dispositivos USB
video-------para acceder al hardware de captura de vídeo y a la aceleración por hardware
wheel------para poder utilizar su




Cron

El siguiente es el demonio cron. Aunque es opcional y no lo requiere su sistema es recomendable instalar uno. ¿Pero qué es un demonio cron? Un demonio cron ejecuta comandos en horarios planificados. Es muy cómodo si necesita ejecutar comandos regularmente (por ejemplo a diario, cada semana o mensualmente).

Instalar un demonio cron

emerge dcron
rc-update add dcron default



Si desea profundizar en el uso de esta útil herramienta, recomiendo visitar mi post cron a fondo





Bitácora del Sistema

emerge syslog-ng
rc-update add syslog-ng default





Indexar Archivos

Si quiere crear un índice de su sistema de archivos para habilitar su rápida localización usando la herramienta locate, necesita instalar eix.

Instalar eix

emerge eix





Acceso remoto

Para acceder a su sistema desde un equipo remoto después de la instalación, no olvide añadir sshd al nivel de ejecución por defecto:

Iniciar el demonio SSH

/etc/init.d/sshd start

si vemos que todo está correcto pasamos a agregarlo al inicio del sistema.


Añadir sshd al nivel de ejecución por defecto

rc-update add sshd default

Y ya nos podemos conectar al servidor






Información del sistema

Gentoo usa /etc/rc.conf para configurar los servicios y el arranque y apagado de su sistema. Abra el fichero /etc/rc.conf y disfrute de todos los comentarios que hay en este fichero.

Una modificación básica que debemos hacerle es la siguiente:

nano -wB /etc/rc.conf






Verificamos los medios montados

mount






____________________________________________________________



Si te gusto el post comenta!
Estas sin tiempo para leerlo detenidamente? Agregalo a favoritos ya!
No entendiste algo? mandame un MP que te ayudo.

Te gustan mis aportes? Seguime! no te defraudaré.



Fuentes de conocimientos:











Datos archivados del Taringa! original
284puntos
841visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
11visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
alband🇦🇷
Usuario
Puntos0
Posts71
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.