{"id":1016,"date":"2006-12-11T11:04:49","date_gmt":"2006-12-11T14:04:49","guid":{"rendered":"http:\/\/www.maurom.com\/blog\/?p=1016"},"modified":"2014-10-21T16:54:35","modified_gmt":"2014-10-21T19:54:35","slug":"servidores-virtuales-en-debian-con-vserver-parte-i","status":"publish","type":"post","link":"https:\/\/maurom.com\/blog\/2006\/12\/11\/servidores-virtuales-en-debian-con-vserver-parte-i\/","title":{"rendered":"Servidores virtuales en Debian con VServer (parte I)"},"content":{"rendered":"<p>Se dice que<\/p>\n<blockquote><p>&#8220;Necesidad, que es la madre de la invenci\u00f3n&#8221; &#8211; Plat\u00f3n en &#8220;La Rep\u00fablica&#8221;. (1)<\/p><\/blockquote>\n<p>por supuesto algunos disienten,<\/p>\n<blockquote><p>&#8220;No pienso que la necesidad es la madre de la invenci\u00f3n &#8211; la invenci\u00f3n, en mi opini\u00f3n, surge directamente de la ociocidad, posiblemente tambi\u00e9n de la holgazaner\u00eda. Para ahorrarse problemas uno mismo.&#8221; &#8211; Agatha Christie en &#8220;Una Autobiograf\u00eda&#8221;. (2)<\/p><\/blockquote>\n<p>En cualquier caso, menos mal que lo que yo necesitaba ya estaba inventado (punto a favor para la definici\u00f3n 2).<\/p>\n<p>El t\u00f3pico de hoy es Servidores virtuales en Debian con VServer. Pero primero <span style=\"font-weight: bold;\">\u00bfqu\u00e9 es un servidor virtual?<\/span><\/p>\n<blockquote><p>&#8220;Un <span style=\"font-weight: bold;\">servidor virtual privado <\/span>(tambi\u00e9n designado como <span style=\"font-weight: bold;\">servidor virtual dedicado<\/span> o <span style=\"font-weight: bold;\">servidor virtual<\/span> y abreviado como <span style=\"font-weight: bold;\">VPS<\/span> o <span style=\"font-weight: bold;\">VDS<\/span>) es un servidor que se ejecuta mediante virtualizaci\u00f3n en t\u00e1ndem con otros servidores virtuales en una computadora f\u00edsica.&#8221; &#8211; <a href=\"http:\/\/en.wikipedia.org\/wiki\/Virtual_server\">Wikipedia<\/a><\/p><\/blockquote>\n<p>Las posibilidades en virtualizaci\u00f3n son varias, cada una con un buen compendio de ventajas y desventajas. Pueden encontrar una <a href=\"http:\/\/en.wikipedia.org\/wiki\/Comparison_of_virtual_machines\">comparativa de m\u00e1quinas virtuales<\/a> en Wikipedia. Las implementaciones m\u00e1s conocidas son:<\/p>\n<ul>\n<li>Linux VServer &#8211; <a href=\"http:\/\/linux-vserver.org\/\">http:\/\/linux-vserver.org\/<\/a><\/li>\n<li>MS Virtual PC &#8211; <a href=\"http:\/\/www.microsoft.com\/windowsxp\/virtualpc\/\">http:\/\/www.microsoft.com\/windowsxp\/virtualpc\/<\/a><\/li>\n<li>Parallells Workstation &#8211; <a href=\"http:\/\/www.parallels.com\/\">http:\/\/www.parallels.com\/<\/a><\/li>\n<li>QEMU &#8211; <a href=\"http:\/\/www.qemu.com\/\">http:\/\/www.qemu.com\/<\/a><\/li>\n<li>User Mode Linux &#8211; <a href=\"http:\/\/www.usermodelinux.org\/\">http:\/\/www.usermodelinux.org\/<\/a><\/li>\n<li>VMWare Server &#8211; <a href=\"http:\/\/www.vmware.com\/es\/\">http:\/\/www.vmware.com\/es\/<\/a><\/li>\n<li>Xen &#8211; <a href=\"http:\/\/www.xensource.com\/xen\/xen\/\">http:\/\/www.xensource.com\/xen\/xen\/<\/a><\/li>\n<\/ul>\n<p>El sistema operativo en mi m\u00e1quina de trabajo es <span style=\"font-weight: bold;\">Debian Etch<\/span>, una versi\u00f3n de Debian que a\u00fan no est\u00e1 liberada como estable (aunque <a href=\"http:\/\/times.debian.net\/1038-Etch-frozen\">pronto lo estar\u00e1<\/a>). Nuestros servidores corren actualmente <span style=\"font-weight: bold;\">Debian Sarge<\/span> (la versi\u00f3n estable actual) con las correspondientes actualizaciones de seguridad.<\/p>\n<p>La virtualizaci\u00f3n es \u00fatil, en mi caso, para verificar el comportamiento de las aplicaciones en el entorno de trabajo en el que ser\u00e1n ejecutadas sin necesidad de tener un equipo adicional ni requerir un inicio dual con dos sistemas operativos en el equipo de desarrollo (lo que ser\u00eda sumamente tedioso dado implica reiniciar el equipo para cambiar entre el entorno de desarrollo y el de implementaci\u00f3n).<\/p>\n<p>De las opciones anteriormente mencionadas opt\u00e9 por Linux-VServer sin muchas razones m\u00e1s que la facilidad de instalaci\u00f3n.<\/p>\n<p>La tecnolog\u00eda <span style=\"font-weight: bold;\">Linux-VServer<\/span> es, <a href=\"http:\/\/linux-vserver.org\/Overview#The_Linux-VServer_approach\">seg\u00fan su p\u00e1gina web<\/a>:<\/p>\n<blockquote><p>&#8230; un concepto de particionamiento liviano basado en <span style=\"font-style: italic;\">Contextos de Seguridad<\/span> que permite la creaci\u00f3n de muchos <span style=\"font-style: italic;\">Servidores Virtuales Privados<\/span> (VPS) independientes que se ejecutan simult\u00e1neamente sobre un \u00fanico servidor virtual a m\u00e1xima velocidad, compartiendo eficientemente los recursos de hardware.<br \/>\nUn VPS provee un entorno operativo casi id\u00e9ntico al de un servidor Linux convencional. Todos los servicios como servidores de ssh, correo, web y bases de datos pueden ser iniciados en e VPS, sin modificaci\u00f3n (o con m\u00ednimas modificaciones en casos especiales), tal como cualquier en otro servidor real.<\/p>\n<p>Cada VPS tiene su propia base de datos de cuentas de usuarios y su propio usuario root, y est\u00e1 aislado de los dem\u00e1s servidores virtuales, exceptuando el hecho de que comparten los mismos recursos de hardware.&#8221;<\/p><\/blockquote>\n<p>A diferencia de Xen, donde un host puede ejecutar VPS con distintos sistemas operativos, Linux-VServer es un virtualizador que opera <a href=\"http:\/\/en.wikipedia.org\/wiki\/Operating_system-level_virtualization\">a nivel de Sistema Operativo<\/a> y utiliza el mismo kernel en el host y en los diferentes VPS, con lo cual est\u00e1 limitado a Linux, y preferentemente a la misma distribuci\u00f3n que el host. Esta caracter\u00edstica le brinda a su vez una gran ventaja: muy buen rendimiento. Pueden encontrar mucha m\u00e1s informaci\u00f3n leyendo el <a href=\"http:\/\/linux-vserver.org\/Paper\">Paper sobre Linux-VServer<\/a> disponible en la web del proyecto.<\/p>\n<p>Esta gu\u00eda es una traducci\u00f3n con ligeras modificaciones de &#8220;<a href=\"http:\/\/www.howtoforge.com\/linux_vserver_debian_etch\">Linux-Vserver on Debian Testing (Etch), the easy way<\/a>&#8220;, publicada en el sitio <a href=\"http:\/\/www.howtoforge.com\/\">HowtoForge<\/a>.<\/p>\n<p><span style=\"font-weight: bold;\">1. Preparaci\u00f3n del host<\/span><\/p>\n<p>Necesitaremos una imagen de kernel con los parches para VServer. Debian ya nos provee im\u00e1genes preparadas, de las cuales se puede optar para la m\u00e1s conveniente de acuerdo a la arquitectura del host. En mi caso, descargar\u00e9 linux-image-vserver-k7.<\/p>\n<p><span style=\"font-family: courier new;\"># apt-get install linux-image-vserver-k7<\/span><\/p>\n<p>Tambi\u00e9n ser\u00e1 necesario descargar las utilidades para VServer:<\/p>\n<p><span style=\"font-family: courier new;\"># apt-get install util-vserver vserver-debiantools<\/span><\/p>\n<p>Una vez hecho todo esto se debe reiniciar el equipo para iniciar con el nuevo kernel. Al finalizar el arranque, verificar que el kernel iniciado es el que contiene los parches VServer con<\/p>\n<p><span style=\"font-family: courier new;\"># uname -r <\/span><br \/>\n<span style=\"font-family: courier new;\">2.6.18-3-vserver-k7<\/span><\/p>\n<p>Este kernel no es muy diferente al est\u00e1ndar, los m\u00f3dulos disponibles son pr\u00e1cticamente los mismos. Incluso es posible iniciar un servidor X (si es que no inici\u00f3 autom\u00e1ticamente), aunque s\u00f3lo lo recomiendo si tienen bastante memoria disponible (mas de 512, preferentemente).<\/p>\n<p><span style=\"font-weight: bold;\">2. Creaci\u00f3n de un servidor virtual<\/span><\/p>\n<p>Antes de continuar debemos establecer ciertas variables que ser\u00e1n necesarias para la creaci\u00f3n del nuevo VPS:<\/p>\n<ul>\n<li><b>vsroot<\/b> &#8211; Esto apuntar\u00e1 a un directorio o partici\u00f3n donde se mantendr\u00e1n los archivos para cada VPS. Por defecto es <span style=\"font-style: italic;\">\/var\/lib\/vservers<\/span><\/li>\n<li><b>Hostname<\/b> &#8211; El hostname de nuevo sistema<\/li>\n<li><b>Domain<\/b> &#8211; El dominio del nuevo sistema (usualmente el mismo de host)<\/li>\n<li><b>IP Address<\/b>&#8211; La direcci\u00f3n IP del nuevo VPS<\/li>\n<li><b>CIDR Range <\/b>&#8211; La m\u00e1scara de la IP anterior<\/li>\n<li><b>Dist<\/b> &#8211; La distribuci\u00f3n a instalar<\/li>\n<li><b>Debian Mirror<\/b> &#8211; El espejo desde el cual se deben descargar los paquetes<\/li>\n<li><b>Interface<\/b> &#8211; La interfaz de red a utilizar, si no es eth0<\/li>\n<\/ul>\n<p>Para este ejemplo, crear\u00e9 un servidor virtual con los siguientes datos:<\/p>\n<ul>\n<li>vsroot: \/var\/lib\/vservers<\/li>\n<li>hostname: mendieta<\/li>\n<li>domain: example.com<\/li>\n<li>ip address: 192.168.3.101 &lt;= puede ser p\u00fablica o privada<\/li>\n<li>m\u00e1scara: \/24<\/li>\n<li>dist: sarge<\/li>\n<li>mirror: http:\/\/ftp.br.debian.org\/<\/li>\n<li>interface: eth0<\/li>\n<\/ul>\n<p>Nota: si son impacientes y no quieren esperar a bajar los paquetes desde el mirror porque tienen un CD de Sarge, pueden montar r\u00e1pidamente un mirror casero aprovechando un servidor web o ftp existente. Por ejemplo utilizando <span style=\"font-style: italic;\">vsftpd<\/span>, solo deben crear un directorio <span style=\"font-style: italic;\">debian<\/span> dentro de la ra\u00edz an\u00f3nima (usualmente <span style=\"font-style: italic;\">\/home\/ftp<\/span>) y copiar all\u00ed los directorios <span style=\"font-style: italic;\">\/pool<\/span> y <span style=\"font-style: italic;\">\/dist<\/span> del cdrom (o crear un enlace simb\u00f3lico, lo que prefieran) . En tal caso el mirror ser\u00e1 <span style=\"font-style: italic;\">http:\/\/localhost\/debian\/<\/span><br \/>\nDe esta forma se agiliza mucho la instalaci\u00f3n. No hay que olvidarse de, en el corto plazo, efectuar una actualizaci\u00f3n contra los repositiorios <span style=\"font-style: italic;\">security.debian.org<\/span>, a fin de no quedar utilizando versiones comprometidas de los servicios disponibles.<\/p>\n<p>Bien con eso alcanza para crear el primer VPS. S\u00f3lo hay que llamar a <span style=\"font-style: italic;\">newvserver<\/span> con los par\u00e1metros dados:<\/p>\n<p><span style=\"font-family: courier new;\"># newvserver &#8211;vsroot \/var\/lib\/vservers\/ &#8211;hostname <\/span><span style=\"font-style: italic; font-family: courier new;\">mendieta<\/span><span style=\"font-family: courier new;\"> &#8211;domain <\/span><span style=\"font-style: italic; font-family: courier new;\">example.com<\/span><span style=\"font-family: courier new;\"> &#8211;ip <\/span><i style=\"font-family: courier new;\">192.168.3.101\/24<\/i><span style=\"font-family: courier new;\"> &#8211;dist sarge &#8211;mirror <\/span><i style=\"font-family: courier new;\">ftp:\/\/localhost\/debian\/<\/i><span style=\"font-family: courier new;\"> &#8211;interface <\/span><span style=\"font-style: italic; font-family: courier new;\">eth0<\/span><\/p>\n<p>Tras un ratito de descarga y configuraci\u00f3n donde hay que responder algunas preguntas (la clave que se asignar\u00e1 a root, por ejemplo), el VPS estar\u00e1 disponible.<\/p>\n<p><span style=\"font-weight: bold;\">3. Control del servidor virtual<\/span><\/p>\n<p>Para controlar el servidor virtual se utiliza el comando <span style=\"font-style: italic;\">vserver <\/span>de la siguiente forma:<\/p>\n<p><span class=\"system\" style=\"font-family: courier new;\">vserver [start | stop | restart | enter]<\/span><\/p>\n<p>Por ejemplo, para iniciar el servidor recientemente creado, solo hay que ejecutar<\/p>\n<p># vserver mendieta start<\/p>\n<p>Si se desea detener el VPS, reemplazar <span style=\"font-style: italic;\">start<\/span> por <span style=\"font-style: italic;\">stop<\/span>.<\/p>\n<p>Finalmente, para ingresar al servidor virtual, se debe ejecutar:<\/p>\n<p><span style=\"font-family: courier new;\"># vserver mendieta enter<\/span><br \/>\n<span style=\"font-family: courier new;\">mendieta:\/#<\/span><\/p>\n<p>Y all\u00ed ya tenemos un VPS con Debian Sarge en el cual podemos instalar lo que sea necesario utilizando <span style=\"font-style: italic;\">apt-get<\/span> o <span style=\"font-style: italic;\">aptitude<\/span>.<\/p>\n<p>Hasta ac\u00e1 llego con el post de hoy. La segunda parte tratar\u00e1 sobre la instalaci\u00f3n y configuraci\u00f3n de servicios tanto en el VPS como en el host, y el establecimiento de reglas de enrutado a fin de permitir el acceso externo a los servicios brindados por el VPS.<\/p>\n<p>Como siempre, espero que todo haya sido de utilidad.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se dice que &#8220;Necesidad, que es la madre de la invenci\u00f3n&#8221; &#8211; Plat\u00f3n en &#8220;La Rep\u00fablica&#8221;. (1) por supuesto algunos disienten, &#8220;No pienso que la necesidad es la madre de la invenci\u00f3n &#8211; la invenci\u00f3n, en mi opini\u00f3n, surge directamente de la ociocidad, posiblemente tambi\u00e9n de la holgazaner\u00eda. Para ahorrarse problemas uno mismo.&#8221; &#8211; Agatha [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5,3,18],"_links":{"self":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/posts\/1016"}],"collection":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/comments?post=1016"}],"version-history":[{"count":0,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/posts\/1016\/revisions"}],"wp:attachment":[{"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/media?parent=1016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/categories?post=1016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurom.com\/blog\/wp-json\/wp\/v2\/tags?post=1016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}