Estos textos son como una retroespectiva de un procedimiento técnico. El procedimiento persiste en la actualidad. Esperamos provocar aventuras parecidas en esferas desconocidas por nosotros. Indicamos otros textos que en muchos casos son más completos, y sin duda, tienen menos fallos ortográficos que esto.
Si entiendes el portugués, recomendamos el padrao sarava
No es obligatorio usar Debian GNU/Linux, pero así hicimos nosotros:
Guía de instalación de Debian GNU/Linux
Si prefirieras usar algo como slackware, visita padrao sarava
Un servidor puede tener muchas funciones: páginas web, servidor de streaming media… Bueno, se pueden imaginar muchas cosas. Entre los distintos proyectos que se pueden imaginar, sugiere ciertos requisitos de organizacion. En primer lugar, se pueden seperar distintas funciones en distintos servidores, para hacer la administración más fácil. Sobre todo, si distintas personas o grupos van a manejar distintos proyectos dentro de la misma cpu. Puedes visitar proyectos para conocer las distintas iniciativas que van surgiendo aquí.
Necesitamos un kernel con soporte para vserver, entonces vemos cuales están disponibles:
# apt-cache search vserver linux
Escogemos linux-image-vserver-k7 (lo más probable es que vas a querer descargar las fuentes del kernel, para compilarlo tu mismo, pero para ser breves, vamos a ir por el camino más rapido e instalaremos la imagen del nucleo, “linux-image”).1)
# apt-get install linux-image-vserver-k7
el “k7” es para CPUs AMD.
Instalamos unos programillas que nos van a ayudar a administrar nuestras vservers:
# apt-get install util-vserver
Necesitamos crear una carpeta “barrier”, que va a contener nuestras vserver y que ayuda a asegurar la seguridad del sistema:
# mkdir /vservers
# rm /etc/vservers/.defaults/vdirbase
# ln -s /vservers /etc/vservers/.defaults/vdirbase
# setattr --barrier /vservers
Vamos a necesitar ssh para poder administrar el servidor remotamente.
# apt-get install ssh
Es preciso definir la ip que escuchará sshd para el ip en la máquina. Eso porque, cuando instalemos los vserver, van a tener su propio servidor ssh, configurado por su ip. De otra manera no se podria accesar a los vservers a través de su propia shell.
vim /etc/ssh/sshd_config
Buscamos la linea:
ListenAddress 0.0.0.0
Y reemplazamos el 0.0.0.0 con nuestra ip:
ListenAddress 10.10.10.9
Despues de cambiar la configuracion de sshd, debemos reiniciar el proceso para que los cambios tomen efecto:
# /etc/init.d/ssh restart
Ahora podemos reinicar usando el nuevo kernel que instalamos unos pasos atras.
Ahora vamos a instalar un vserver2). Usamos nuestro servidor de correo por poner un ejemplo. Aún no corras el comando, regresaremos a el:
# vserver mail build -m debootstrap --hostname mail --interface mail=eth1:10.10.10.3/24 -- -d etch
Es decir:
Si tenemos más de una ip, sería posible asignar un veserver a cada una. Pero no tenemos una ip abierta al internet. Por eso creamos los dispositivos virtuales para cada vserver.
De todas maneras esta ip tenemos que difinirla antes de correr la orden de instalar el vserver. Sino, nos dará errores.
Entonces abrimos el archivo ”/etc/network/interfaces”
vim /etc/network/interfaces
Y agregamos:
auto eth1:mail
iface eth1:mail inet static
address 10.10.10.3
netmask 255.255.255.0
Guardamos para que asi la configuración persista cuando reiniciemos la máquina.
Ahora si creamos el vserver de correo:
# vserver mail build -m debootstrap --hostname mail --interface mail=eth1:10.10.10.3/24 -- -d etch
Tarda un poco, asi que descarga el sistema operativo. Cuando termine puedes arrancar el vserver asi:
# vserver mail start
En cualcuier momento, para ver el estatus de los vserver, se puede hacer:
# vserver-stat
Hacemos que el vserver arranque automaticamente al arrancar el cpu:
# echo "default" > /etc/vservers/mail/apps/init/mark
Entramos en el vserver:
# vserver mail enter
Siempre es bueno remover los paquetes que no necesistamos:
apt-get --purge remove ipchains iptables pppoe pppoeconf ppp pppconfig dhcp-client nano
Nos dará un error de local cuando corramos la orden previa, hacemos lo siguente para selecionar manualmente nuestra local:
Primero instalar locales:
# apt-get install locales
Luego configurarla:
# dpkg-reconfigure locales
Estamos en mexico, vamos a seleccionar todo lo que dice “ES-mx”.
Para salir del vserver se utiliza el mismo comando para salir de cualquier shell, control-D.
de la misma manera podemos instalar paquetes en los vserver desde el host, sin entrar al vserver. por ejemplo para instalar “locales” en el vserver “mail”:
# vapt-get mail -- install locales
Algo alternativo al comando “vserver” para crear nuevos vservers es la orden “newvserver”. Ello hará ciertas configuraciones en el archivo ”/etc/vservers/newvserver-vars” para indicar programas que queremos instalar, o quitar, y la configuracion de apt. De esta manera, editamos ”/etc/vservers/newvserver-vars” a nuestro gusto, y cada vserver que hagamos seguirá nuestra configuracion. Un ”/etc/vservers/newvserver-vars” podria parecer esto:
DIST="etch" MIRROR="http://ftp.mx.debian.org/debian" INSTALL_PACKAGES="ssh,locales,localepurge" REMOVE_PACKAGES="ipchains, iptables, pppoe, pppoeconf, ppp, pppconfig, dhcp-client" REMOVE_LINKS="klogd hwclock setserial urandom networking umount halt reboot"
Luego corremos el comando
# newvserver --hostname mail --domain acervo.org --ip 10.10.10.5/8 --interface eth1
Para usar ssh al entrar a nuestra vserver, es preciso una ruta desde internet a la ip del servidor virtual. Recordemos que tenemos un dispositivo virtual, eth1:mail, al cual hemos asignado el ip de nuestra vserver: 10.10.10.3. Supongamos que el ip de nuestro dispositivo eth1, que es el que conecta al internet, es xx.xx.xx.x. Entonces utilizaremos iptaples para reenviar cualquier petición al puerto 222 (este numero escojemos nosotros) al ip xx.xx.xx.x al ip 10.10.10.3. No es tan complicado como suena, aunque si no tenemos una idea muy clara de que significa, es recomendable investigar un poco más.
iptables --protocol tcp -t nat -A PREROUTING -s 0/0 -d xx.xx.xx.0/24 --dport 222 -j DNAT --to-destination 10.10.10.3:22
En cuanto creemos más vservers, vamos a crear más reglas así, cada vez cambiando el ”–dport”. La “destinacion”, el vserver, siempre va recibir la petición en el puerto estandar: 22. También vamos a querer accesar a internet desde nuestra vserver:
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -d ! 10.10.10.0/24 -j SNAT --to-source xx.xx.xx.x
Si nos equivocamos podemos borrar la regla anterior reemplazando el ”-A” con ”-D” (de añadir a borrar) de la siguiente manera:
iptables -t nat -D POSTROUTING -s 10.10.10.0/24 -d ! 10.10.10.0/24 -j SNAT --to-source xx.xx.xx.x
Checamos las reglas que hemos definido con el comando “iptables-save”. Para guardar las reglas es así:
iptables-save > /etc/iptables-save
En ”/etc/network/interfaces”, al final de la configuración del dispositivo conectado al internet, indicamos como el sistema debe de cargar estas reglas al arrancar:
auto eth0
iface eth0 inet static
address xxx.xxx.xxx.x
netmask xxx.xxx.xxx.x
broadcast xxx.xxx.xxx.x
gateway xxx.xxx.xxx.x
pre-up cat /etc/iptables-save | iptables-restore
otras temas no relacionadas a las aplicaciónes alojados en el servidor si puede encontrar en paginas especificas relacionadas a cada tema. Aquí podremos links a estas paginas: