Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Instalar servidor LXC en GNU/Linux

Instalar servidor LXC en GNU/Linux

Tabla de contenidos

LXC (linux containers)

LXC (Linux Containers) es una tecnología de virtualización en el nivel de sistema operativo (SO) para Linux. LXC permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (SPV o VPS en inglés) o Entornos Virtuales (EV). LXC no provee de una máquina virtual, más bien provee un entorno virtual que tiene su propio espacio de procesos y redes.

Es similar a otras tecnologías de virtualización en el nivel de SO como OpenVZ y Linux-VServer, asimismo se asemeja a aquellas de otros sistemas operativos como FreeBSD jail y Solaris Containers.

LXC se basa en la funcionalidad cgroups del Linux que está disponible desde la versión 2.6.29, desarrollada como parte de LXC. También se basa en otras funcionalidades de aislamiento de espacio de nombres, que fueron desarrolladas e integradas dentro de la línea principal del núcleo de Linux.

Instalación

Debian

bash
apt-get install lxc bridge-utils libvirt-bin debootstrap cgroup-bin libcgroup1

Redhat

bash
yum install lxc bridge-utils febootstrap debootstrap lxc-template

Creamos el directorio para el contenedor

bash
root@docker:~#  mkdir /lxc
root@docker:~# cd /lxc
root@docker:~# mkdir contenedor

Habilitamos cgroup.

bash
root@docker:~# mkdir /cgroup
root@docker:~# echo «none /cgroup cgroup defaults 0 0« >>/etc/fstab
root@docker:~# mount /cgroup
root@docker:~# mkdir /cgroup/contenedor

Configuramos la interfaz de red:

Redhat:
bash
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
HWADDR=aa:bb:cc:dd:ee:ff:11:22
ONBOOT=yes
BRIDGE=br0
USERCTL=no
IPV6INIT=no
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-br0
HOSTNANE=host1
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
DELAY=0
TYPE=Bridge
IPADDR=192.168.1.88
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
MTU=1500
DNS1=192.168.1.0
IPV6INIT=no
USERCTL=no
Añadimos para que inicie la interfaz br0
powershell
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifup-post
if [ $DEVNAME = «br0« ]
then
/usr/sbin/brctl setfd br0 0
fi
Debian:
bash
root@docker:~# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
post-up /usr/sbin/brctl setfd br0 0

Creamos el contenedor.

bash
root@docker:/lxc/contenedor# lxc-create -n redorbita -t debian –lxcpath=/lxc/contenedor

Configuramos la interfaz de red

Añadimos la siguiente configuración (Modificando el nombre y la dirección IP):

bash
root@docker:~#  cat /lxc/contenedor/redorbita/config
# Template used to create this container: /usr/share/lxc/templates/lxc-debian

# Parameters passed to the template:

# For additional config options, please look at lxc.container.conf(5)

lxc.network.type = empty

lxc.rootfs = /lxc/contenedor/redorbita/rootfs
# Common configuration

lxc.include = /usr/share/lxc/config/debian.common.conf
# Container specific configuration

lxc.mount = /lxc/contenedor/redorbita/fstab

lxc.utsname = redorbita

lxc.arch = amd64

lxc.autodev = 1

lxc.kmsg = 0
# Network configuration

lxc.network.type = veth

lxc.network.flags = up

lxc.network.link = br0

#lxc.network.hwaddr = 00:16:3e:64:0b:6e
# Assegnazione IP Address

lxc.network.ipv4 = 192.168.1.80/24

lxc.network.ipv4.gateway = 192.168.1.1
# Autostart

lxc.start.auto = 1

lxc.start.delay = 5

lxc.start.order = 100

 Iniciamos el servidor

bash
root@docker:/lxc/contenedor# lxc-start -f /lxc/contenedor/redorbita/config -n redorbita -P /lxc/contenedor/ -d

Accedemos por consola

bash
root@docker:~# lxc-console -n redorbita -P /lxc/contenedor/
Connected to tty 1

Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself
Debian GNU/Linux 8 redorbita tty1
redorbita login: root

Password:
Algunos comandos utiles:
 mediante el comando lxc-ls podemos ver las maquinas que tenemos su estado, etc
bash
root@docker:/lxc/contenedor#  lxc-ls -f -P /lxc/contenedor/

NAME          STATE    IPV4                        IPV6  AUTOSTART

——————————————————————

redorbita     RUNNING  192.168.1.80,                   –     YES

redorbitaweb  RUNNING  192.168.1.81                –     YES

Un saludo, rokitoh!

Comentarios