Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ******************************
- * INSTRUCCIONES *
- ******************************
- *) En esta ocasión usaremos la versión Ubuntu 18.04 LTS en una máquina virtual.
- *) Para poder instalar un servidor PXE en el que se puedan servir ISOs de otros S.O. y que puedan ser instalados por otros equipos en red necesitaremos instalar una serie de servicios.
- a) Servidor DHCP
- b) Servidor TFTP
- c) Servicio INETD
- d) Servicio HTTP apache2
- ** IMPORTANTE: Es imprescindible que el servidor DHCP que se ha configurado anteriormente sea el único en la red. Si en el aula, hay otro servidor DHCP en funcionamiento, se deberá parar o se deberá aislar la red para poder realizar la instalación.
- *) La configuración de red de esta máquina virtual estará en:
- - Conectado a: "Adaptador puente"
- - Modo promiscuo: "Permitir todo"
- a) Servidor DHCP
- *) El protocolo DHCP (Protocolo de configuración dinámica de host) o también conocido como «Dynamic Host Configuration Protocol«, es un protocolo de red que utiliza una arquitectura cliente-servidor. Por tanto, tendremos uno o varios servidores DHCP y también uno o varios clientes, que se deberán comunicar entre ellos correctamente para que el servidor DHCP brinde información a los diferentes clientes conectados. Este protocolo se encarga de asignar de manera dinámica y automática una dirección IP, ya sea una dirección IP privada desde el router hacia los equipos de la red local, o también una IP pública por parte de un operador que utilice este tipo de protocolo para el establecimiento de la conexión.
- *) Para la instalación de este servicio debemos usar:
- # -y: confirma con "yes" cuando pregunte si queremos instalar
- sudo apt install -y isc-dhcp-server
- *) Una vez instalado debemos configurar el servicio DHCP, para ello deberemos conocer primero nuestra interfaz de red y para esto usaremos el comando:
- ifconfig
- NOTA: si no te funciona el comando 'ifconfig' debes instalar las herramientas net-tools:
- sudo apt install net-tools
- *) En mi caso concreto mi tarjeta de red se llama "enp0s3".
- *) Tras averiguar este dato, necesitaremos modificar el archivo "/etc/default/isc-dhcp-server":
- sudo gedit /etc/default/isc-dhcp-server
- *) Dentro de este archivo deberemos añadir la directiva "INTERFACES", quedando así:
- #INTERFACESv4=""
- #INTERFACESv6=""
- INTERFACES="enp0s3"
- *) Debemos asignar una IP ESTÁTICA:
- + La dirección ip de nuestro equipo será: "192.168.0.122". Para asignar una dirección IP estática a un equipo lo podemos hacer de forma gráfica (GUI):
- - Nos vamos a "Configuración" => "Red" => le damos a la rueda donde dice "Cableado" y nos vamos a la pestaña "IPv4" y allí en "Método IPv4" elegimos "Manual" y debemos configurar la siguente información:
- 1ª CONFIG (RED: "Adaptador Puente")
- -) Dirección: 192.168.0.122
- -) Máscara de red: 255.255.255.0
- ////////////////////////////////////////////////////////////////////
- *) Ahora debemos configurar el archivo "/etc/dhcp/dhcpd.conf":
- # haremos primero un backup antes de tocar el archivo, para ello usaremos el comando "cp -iv" (la opción '-i' confirma antes de sobreescribir un archivo existente y '-v' es el modo verbose que explica el proceso que se lleva acabo)
- sudo cp -iv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
- sudo gedit /etc/dhcp/dhcpd.conf
- *) Borramos todo el contenido del fichero "/etc/dhcp/dhcpd.conf" y copiamos lo siguiente dentro del archivo:
- #####################################################################
- ## CONFIG PARA EL UBUNTU PXE ##
- option domain-name "servidor-pxe.com";
- option domain-name-servers 8.8.8.8;
- subnet 192.168.0.0 netmask 255.255.255.0 {
- range 192.168.0.150 192.168.0.200;
- option routers 192.168.0.122;
- }
- default-lease-time 600;
- max-lease-time 7200;
- authoritative;
- allow booting;
- allow bootp;
- option option-128 code 128 = string;
- option option-129 code 129 = text;
- next-server 192.168.0.122;
- filename "pxelinux.0";
- #####################################################################
- *) Una vez finalizada la configuración, deberemos reiniciar el servicio con el siguiente comando:
- sudo systemctl restart isc-dhcp-server
- *) Y comprobamos que se ha iniciado correctamente:
- sudo systemctl status isc-dhcp-server
- *) Si todo ha ido bien se debe mostrar que el servicio está "active (running)"
- **************************************
- ********* ANTES DE CONTINUAR *********
- **************************************
- *) Vamos a dejar instalados el resto de paquetes: Servidor TFTP, servicios INETD y Servicio HTTP apache2.
- # -y: confirma con "yes" cuando pregunte si queremos instalar
- sudo apt install -y apache2 tftpd-hpa inetutils-inetd
- *************************************************
- *************************************************
- *************************************************
- *************************************************
- *************************************************
- b) Servidor TFTP
- *) TFTP son las siglas de Trivial file transfer Protocol (Protocolo de transferencia de archivos trivial).
- Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre computadoras en una red, como cuando un terminal X Window o cualquier otro cliente ligero arranca desde un servidor de red.
- *) El servicio permitirá la conexión al servidor para poder descargar la imagen ISO publicada con apache2.
- *) Para configurarlo, hay que editar el fichero "/etc/default/tftpd-hpa" y configurarlo de la siguiente forma:
- # haremos primero un backup antes de tocar el archivo, para ello usaremos el comando "cp -iv" (la opción '-i' confirma antes de sobreescribir un archivo existente y '-v' es el modo verbose que explica el proceso que se lleva acabo)
- sudo cp -iv /etc/default/tftpd-hpa /etc/default/tftpd-hpa.backup
- sudo gedit /etc/default/tftpd-hpa
- *) Añadimos las siguientes líneas al final del archivo:
- #####################################################################
- ## CONFIG TFTP ##
- RUN_DAEMON="yes"
- OPTIONS="-l -s /var/lib/tftpboot"
- #####################################################################
- c) Servicio INETD
- *) Es un proceso, conocido como "superservidor de internet", que gestiona las conexiones de otros servicios que no están siempre ejecutándose, si no que se arrancan cuando llega una conexión dirigida a ellos.
- *) Para configurarlo, hay que editar el fichero "/etc/inetd.conf" y configurarlo de la siguiente forma:
- # haremos primero un backup antes de tocar el archivo, para ello usaremos el comando "cp -iv" (la opción '-i' confirma antes de sobreescribir un archivo existente y '-v' es el modo verbose que explica el proceso que se lleva acabo)
- sudo cp -iv /etc/inetd.conf /etc/inetd.conf.backup
- sudo gedit /etc/inetd.conf
- *) Añadimos las siguientes líneas al final del archivo
- #####################################################################
- ## CONFIG TFTP ##
- #:OTHER: Other services
- tftp dgram udp wait root /usr/sbin/int.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
- #####################################################################
- + Esto nos permitirá gestionar el servicio TFTP, ya que INETD se encarga de gestionar las conexiones de múltiples servicios.
- *) Debemos comprobar que, tras el cambio en el fichero de configuración, el servicio arranca correctamente, para ello, se debe forzar el reinicio del servicio:
- sudo systemctl restart tftpd-hpa
- *) Si todo ha ido bien se debe mostrar que el servicio está "active (running)"
- sudo systemctl status tftpd-hpa
- d) Servicio HTTP apache2
- *) Apache HTTP Server es un servidor web gratuito y de código abierto que ofrece contenido web a través de Internet. Se le conoce comúnmente como Apache y después del desarrollo, rápidamente se convirtió en el cliente HTTP más popular en la web.
- *) Será el encargado de publicar las imágenes ISO de los sistemas operativos que se vayan a instalar
- ************************
- **** DESCARGA ****
- ************************
- Ahora nos dirigiremos a la página donde descargar la ISO, que puede ser de 32 o 64 bits, y tendremos que elegir una u otra en función del equipo donde se vaya a realizar la instalación, en nuestro caso elegiremos la de 64 bits (puesto que voy a instalar una máquina virtual con arquitectura x64):
- - Para la descarga accederemos al siguiente enlace "https://cdimage.ubuntu.com/netboot/bionic/" y elegiremos "amd64".
- - Descargaremos:
- - mini.iso
- - netboot.tar.gz
- *) Cuando finalicen las descargas moveremos los archivos al usuario actual, en mi caso a "/home/profesor"
- cd ~/Descargas
- mv mini.iso ~
- mv netboot.tar.gz ~
- NOTA: El simbolo '~' representa la carpeta de tu usuario, de manera que no tengas que escribirlo a mano, en mi caso representa: "/home/profesor"
- ************************************
- **** PREPARACIÓN DE CARPETAS ****
- ************************************
- *) Deberemos montar la imagen en el directorio "/mnt":
- sudo mount -o loop mini.iso /mnt/
- *) Más adelante se copiarán los archivos necesarios en el "DocumentRoot" de "Apache2".
- - El "DocumentRoot" indica el directorio donde se almacenan los documentos web que se publican en dicho servidor HTTP.
- *) Ahora, debemos descomprimir el fichero "netboot.tar.gz" en el servidor TFTP cuyo directorio es "/var/lib/tftpboot":
- cd /var/lib/tftpboot
- sudo tar xvf ~/netboot.tar.gz
- *) Y ahora sí, lo siguiente será copiar los archivos en el DocumentRoot de Apache2:
- - primero debemos que crear la carpeta "/var/www/html/ubuntu".
- cd /var/www/html/
- sudo mkdir ubuntu
- - después se copia en ella el contenido de la carpeta "/mnt".
- # -a: archive files (copia sólo archivos)
- # -v: verbose (muestra información del proceso)
- # -r: (hace que el comando cp intente copiar los archivos especiales en archivos normales)
- sudo cp -avr /mnt/* /var/www/html/ubuntu
- *) Ahora, vamos a editar el fichero de configuración de PXE /var/lib/tftpboot/pxelinux.cfg/default y añadimos la siguiente entrada:
- # haremos primero un backup antes de tocar el archivo, para ello usaremos el comando "cp -iv" (la opción '-i' confirma antes de sobreescribir un archivo existente y '-v' es el modo verbose que explica el proceso que se lleva acabo)
- sudo cp -iv /var/lib/tftpboot/pxelinux.cfg/default /var/lib/tftpboot/pxelinux.cfg/default.backup
- sudo gedit /var/lib/tftpboot/pxelinux.cfg/default
- *) Añadimos las siguientes líneas al final del archivo
- #####################################################################
- ## CONFIG HTTP apache 2 ##
- # D-I config version 2.0
- # search path for the c32 support libraries (libcom32, libutil etc.)
- path ubuntu-installer/amd64/boot-screens/
- include ubuntu-installer/amd64/boot-screens/menu.cfg
- default ubuntu-installer/amd64/boot-screens/vesamenu.c32
- prompt 0
- timeout 0
- label linux
- kernel ubuntu-installer/amd64/linux
- append ks=http://192.168.0.122/ks.cfg vga=normal initrd=ubuntu-installer/amd64/initrd.gz
- ramdisk_size=16432 root=/dev/rd/0 rw --
- #####################################################################
- ///////////////////////////////////////////////////////////////////////
- ** NOTA: La dirección IP que he puesto debe coincidir con la del servidor PXE (en mi caso es "192.168.0.122") **
- *) PARA TERMINAR:
- - Después de todo este proceso, cualquier PC que tenga activado el arranque desde la red podrá instalar el S.O. Ubuntu desde dicha red (siempre que esté conectado en la misma red).
- -IMPORTANTE: Es imprescindible que el servidor DHCP que se ha configurado anteriormente sea el único en la red. Si en el aula, hay otro servidor DHCP en funcionamiento, se deberá parar o se deberá aislar la red para poder realizar la instalación.
- ***********************
- * ENLACES *
- ***********************
- # Este enlace es otra forma de hacerlo, para este tutorial no lo he usado
- - Servidor PXE con Ubuntu 18.04 (IBIZAtic): https://ibizatic.me/index.php/servicios/administracion-de-sistemas/44-servidor-pxe-con-ubuntu-18-04
- ## TUTORIAL PARECIDO AL LIBRO ##
- Cómo instalar un servidor PXE (arranque por red) (laboratoriolinux.es): https://laboratoriolinux.es/index.php/-noticias-mundo-linux-/software/12228-como-instalar-un-servidor-pxe-arranque-por-red.html
- --
- Diferencias entre Bridge, NAT, Red Interna y Adaptador en VirtualBox: https://www.alvarolara.com/2014/05/12/diferencias-entre-bridge-nat-red-interna-y-adaptador-en-virtualbox/
- --
- - DHCP (redeszone): https://www.redeszone.net/tutoriales/internet/que-es-protocolo-dhcp/
- - Servidor proxy (Wikipedia): https://es.wikipedia.org/wiki/Servidor_proxy
- - isc-dhcp-server (help.ubuntu.com): https://help.ubuntu.com/community/isc-dhcp-server
- - Qué son los DNS Google y como usarlos (): https://bioxnet.com/como-usar-los-dns-google-8-8-8-8/
- - How to Install and Configure DHCP Server on Ubuntu 18.04 LTS (linuxhint): https://linuxhint.com/install_dhcp_server_ubuntu/
- - Modo promiscuo (Wikipedia): https://es.wikipedia.org/wiki/Modo_promiscuo
- - Setup Static IP on Ubuntu 18.04 LTS Desktop and Server Operating System (linuxhint): https://linuxhint.com/static_ip_ubuntu/
- --
- - TFTP (Wikipedia): https://es.wikipedia.org/wiki/TFTP
- --
- - inetd (Wikipedia): https://es.wikipedia.org/wiki/Inetd
- - demonio / daemon: https://es.wikipedia.org/wiki/Daemon_(inform%C3%A1tica)
- --
- ¿Qué es apache2 en Linux? (ComputerHoy.com): https://www.compuhoy.com/que-es-apache2-en-linux/
- --------------------------------
- - Difference between apt-get upgrade vs apt-get dist-upgrade: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/#:~:text=Both%20upgrade%20and%20dist%2Dupgrade,remove%20existing%20packages%20if%20required.
- - How To Check Your Ubuntu Version in the Command Line (4 Methods) (kinsta.com): https://kinsta.com/knowledgebase/check-ubuntu-version/
- - ¿Qué significa 'lsb'?(enmimaquinafunciona.com): https://www.enmimaquinafunciona.com/pregunta/179228/que-significa-lsb-en-lsb_release
- - How to install gcc make perl package in virtual box (stackoverflow): https://stackoverflow.com/questions/50754167/how-to-install-gcc-make-perl-package-in-virtual-box-with-rhel-7-5-os
- - mkdir command in Linux (GeeksforGeeks): https://www.geeksforgeeks.org/mkdir-command-in-linux-with-examples/
- - rmdir command in Linux (GeeksforGeeks): https://www.geeksforgeeks.org/rmdir-command-in-linux-with-examples/?ref=gcse
- - rmdir command in Linux (rm -r) Not Empty Directories(LinuxTect): https://linuxtect.com/linux-rmdir-not-empty-directories/
- - tar command in Linux (Hostinger): https://www.hostinger.es/tutoriales/como-usar-comando-tar-linux
- - cp command in Linux (rapidtables.com): https://www.rapidtables.com/code/linux/cp.html
- - cp command in Linux (ibm.com): https://www.ibm.com/docs/bg/aix/7.1?topic=files-copying-cp-command
- --------------------------------
- - Ubuntu 18.04 LTS (Bionic Beaver) Netboot (archive.ubuntu.com): https://cdimage.ubuntu.com/netboot/bionic/
- --
- - Sistemas operativos en red. Núñez Rodríguez, M.ª de las Mercedes · Nieto Santos, Silvia. Editorial Síntesis. ISBN: 9788491712954. Año: 2019.
- https://www.sintesis.com/sistemas%20microinform%C3%A1ticos%20y%20redes-363/sistemas%20operativos%20en%20red-ebook-2639.html
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement