Advertisement
javidocente

UBUNTU_PXE

Oct 12th, 2022 (edited)
1,028
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.45 KB | Help | 0 0
  1. ******************************
  2. * INSTRUCCIONES *
  3. ******************************
  4. *) En esta ocasión usaremos la versión Ubuntu 18.04 LTS en una máquina virtual.
  5.  
  6.  
  7. *) 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.
  8. a) Servidor DHCP
  9. b) Servidor TFTP
  10. c) Servicio INETD
  11. d) Servicio HTTP apache2
  12.  
  13. ** 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.
  14.  
  15.  
  16.  
  17. *) La configuración de red de esta máquina virtual estará en:
  18. - Conectado a: "Adaptador puente"
  19. - Modo promiscuo: "Permitir todo"
  20.  
  21. a) Servidor DHCP
  22.  
  23. *) 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.
  24.  
  25. *) Para la instalación de este servicio debemos usar:
  26.  
  27. # -y: confirma con "yes" cuando pregunte si queremos instalar
  28. sudo apt install -y isc-dhcp-server
  29.  
  30. *) Una vez instalado debemos configurar el servicio DHCP, para ello deberemos conocer primero nuestra interfaz de red y para esto usaremos el comando:
  31.  
  32. ifconfig
  33.  
  34. NOTA: si no te funciona el comando 'ifconfig' debes instalar las herramientas net-tools:
  35.  
  36. sudo apt install net-tools
  37.  
  38.  
  39. *) En mi caso concreto mi tarjeta de red se llama "enp0s3".
  40.  
  41. *) Tras averiguar este dato, necesitaremos modificar el archivo "/etc/default/isc-dhcp-server":
  42.  
  43. sudo gedit /etc/default/isc-dhcp-server
  44.  
  45. *) Dentro de este archivo deberemos añadir la directiva "INTERFACES", quedando así:
  46.  
  47. #INTERFACESv4=""
  48. #INTERFACESv6=""
  49. INTERFACES="enp0s3"
  50.  
  51.  
  52. *) Debemos asignar una IP ESTÁTICA:
  53.  
  54. + 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):
  55.  
  56. - 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:
  57.  
  58. 1ª CONFIG (RED: "Adaptador Puente")
  59. -) Dirección: 192.168.0.122
  60. -) Máscara de red: 255.255.255.0
  61.  
  62.  
  63.  
  64. ////////////////////////////////////////////////////////////////////
  65.  
  66. *) Ahora debemos configurar el archivo "/etc/dhcp/dhcpd.conf":
  67.  
  68. # 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)
  69. sudo cp -iv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
  70. sudo gedit /etc/dhcp/dhcpd.conf
  71.  
  72. *) Borramos todo el contenido del fichero "/etc/dhcp/dhcpd.conf" y copiamos lo siguiente dentro del archivo:
  73.  
  74. #####################################################################
  75. ## CONFIG PARA EL UBUNTU PXE ##
  76.  
  77. option domain-name "servidor-pxe.com";
  78. option domain-name-servers 8.8.8.8;
  79.  
  80.  
  81. subnet 192.168.0.0 netmask 255.255.255.0 {
  82. range 192.168.0.150 192.168.0.200;
  83. option routers 192.168.0.122;
  84. }
  85.  
  86. default-lease-time 600;
  87. max-lease-time 7200;
  88. authoritative;
  89.  
  90. allow booting;
  91. allow bootp;
  92. option option-128 code 128 = string;
  93. option option-129 code 129 = text;
  94. next-server 192.168.0.122;
  95. filename "pxelinux.0";
  96.  
  97. #####################################################################
  98.  
  99.  
  100.  
  101. *) Una vez finalizada la configuración, deberemos reiniciar el servicio con el siguiente comando:
  102.  
  103. sudo systemctl restart isc-dhcp-server
  104.  
  105. *) Y comprobamos que se ha iniciado correctamente:
  106.  
  107. sudo systemctl status isc-dhcp-server
  108.  
  109. *) Si todo ha ido bien se debe mostrar que el servicio está "active (running)"
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119. **************************************
  120. ********* ANTES DE CONTINUAR *********
  121. **************************************
  122.  
  123. *) Vamos a dejar instalados el resto de paquetes: Servidor TFTP, servicios INETD y Servicio HTTP apache2.
  124.  
  125. # -y: confirma con "yes" cuando pregunte si queremos instalar
  126. sudo apt install -y apache2 tftpd-hpa inetutils-inetd
  127.  
  128. *************************************************
  129. *************************************************
  130. *************************************************
  131. *************************************************
  132. *************************************************
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. b) Servidor TFTP
  140.  
  141. *) TFTP son las siglas de Trivial file transfer Protocol (Protocolo de transferencia de archivos trivial).
  142. 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.
  143.  
  144. *) El servicio permitirá la conexión al servidor para poder descargar la imagen ISO publicada con apache2.
  145.  
  146.  
  147. *) Para configurarlo, hay que editar el fichero "/etc/default/tftpd-hpa" y configurarlo de la siguiente forma:
  148.  
  149. # 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)
  150. sudo cp -iv /etc/default/tftpd-hpa /etc/default/tftpd-hpa.backup
  151. sudo gedit /etc/default/tftpd-hpa
  152.  
  153. *) Añadimos las siguientes líneas al final del archivo:
  154.  
  155. #####################################################################
  156. ## CONFIG TFTP ##
  157. RUN_DAEMON="yes"
  158. OPTIONS="-l -s /var/lib/tftpboot"
  159. #####################################################################
  160.  
  161.  
  162.  
  163.  
  164.  
  165. c) Servicio INETD
  166.  
  167. *) 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.
  168.  
  169.  
  170.  
  171. *) Para configurarlo, hay que editar el fichero "/etc/inetd.conf" y configurarlo de la siguiente forma:
  172. # 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)
  173. sudo cp -iv /etc/inetd.conf /etc/inetd.conf.backup
  174. sudo gedit /etc/inetd.conf
  175.  
  176.  
  177.  
  178. *) Añadimos las siguientes líneas al final del archivo
  179.  
  180. #####################################################################
  181. ## CONFIG TFTP ##
  182. #:OTHER: Other services
  183. tftp dgram udp wait root /usr/sbin/int.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
  184. #####################################################################
  185.  
  186. + Esto nos permitirá gestionar el servicio TFTP, ya que INETD se encarga de gestionar las conexiones de múltiples servicios.
  187.  
  188.  
  189.  
  190. *) 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:
  191.  
  192. sudo systemctl restart tftpd-hpa
  193.  
  194.  
  195.  
  196. *) Si todo ha ido bien se debe mostrar que el servicio está "active (running)"
  197.  
  198. sudo systemctl status tftpd-hpa
  199.  
  200.  
  201.  
  202. d) Servicio HTTP apache2
  203.  
  204. *) 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.
  205.  
  206. *) Será el encargado de publicar las imágenes ISO de los sistemas operativos que se vayan a instalar
  207.  
  208.  
  209.  
  210. ************************
  211. **** DESCARGA ****
  212. ************************
  213. 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):
  214. - Para la descarga accederemos al siguiente enlace "https://cdimage.ubuntu.com/netboot/bionic/" y elegiremos "amd64".
  215. - Descargaremos:
  216. - mini.iso
  217. - netboot.tar.gz
  218.  
  219. *) Cuando finalicen las descargas moveremos los archivos al usuario actual, en mi caso a "/home/profesor"
  220.  
  221. cd ~/Descargas
  222. mv mini.iso ~
  223. mv netboot.tar.gz ~
  224.  
  225. NOTA: El simbolo '~' representa la carpeta de tu usuario, de manera que no tengas que escribirlo a mano, en mi caso representa: "/home/profesor"
  226.  
  227.  
  228. ************************************
  229. **** PREPARACIÓN DE CARPETAS ****
  230. ************************************
  231.  
  232. *) Deberemos montar la imagen en el directorio "/mnt":
  233.  
  234. sudo mount -o loop mini.iso /mnt/
  235.  
  236. *) Más adelante se copiarán los archivos necesarios en el "DocumentRoot" de "Apache2".
  237. - El "DocumentRoot" indica el directorio donde se almacenan los documentos web que se publican en dicho servidor HTTP.
  238.  
  239. *) Ahora, debemos descomprimir el fichero "netboot.tar.gz" en el servidor TFTP cuyo directorio es "/var/lib/tftpboot":
  240.  
  241. cd /var/lib/tftpboot
  242. sudo tar xvf ~/netboot.tar.gz
  243.  
  244. *) Y ahora sí, lo siguiente será copiar los archivos en el DocumentRoot de Apache2:
  245. - primero debemos que crear la carpeta "/var/www/html/ubuntu".
  246. cd /var/www/html/
  247. sudo mkdir ubuntu
  248.  
  249. - después se copia en ella el contenido de la carpeta "/mnt".
  250. # -a: archive files (copia sólo archivos)
  251. # -v: verbose (muestra información del proceso)
  252. # -r: (hace que el comando cp intente copiar los archivos especiales en archivos normales)
  253. sudo cp -avr /mnt/* /var/www/html/ubuntu
  254.  
  255. *) Ahora, vamos a editar el fichero de configuración de PXE /var/lib/tftpboot/pxelinux.cfg/default y añadimos la siguiente entrada:
  256.  
  257. # 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)
  258. sudo cp -iv /var/lib/tftpboot/pxelinux.cfg/default /var/lib/tftpboot/pxelinux.cfg/default.backup
  259. sudo gedit /var/lib/tftpboot/pxelinux.cfg/default
  260.  
  261. *) Añadimos las siguientes líneas al final del archivo
  262.  
  263. #####################################################################
  264. ## CONFIG HTTP apache 2 ##
  265. # D-I config version 2.0
  266. # search path for the c32 support libraries (libcom32, libutil etc.)
  267. path ubuntu-installer/amd64/boot-screens/
  268. include ubuntu-installer/amd64/boot-screens/menu.cfg
  269. default ubuntu-installer/amd64/boot-screens/vesamenu.c32
  270. prompt 0
  271. timeout 0
  272. label linux
  273. kernel ubuntu-installer/amd64/linux
  274. append ks=http://192.168.0.122/ks.cfg vga=normal initrd=ubuntu-installer/amd64/initrd.gz
  275. ramdisk_size=16432 root=/dev/rd/0 rw --
  276. #####################################################################
  277. ///////////////////////////////////////////////////////////////////////
  278.  
  279. ** NOTA: La dirección IP que he puesto debe coincidir con la del servidor PXE (en mi caso es "192.168.0.122") **
  280.  
  281.  
  282. *) PARA TERMINAR:
  283. - 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).
  284.  
  285. -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.
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293. ***********************
  294. * ENLACES *
  295. ***********************
  296.  
  297. # Este enlace es otra forma de hacerlo, para este tutorial no lo he usado
  298. - Servidor PXE con Ubuntu 18.04 (IBIZAtic): https://ibizatic.me/index.php/servicios/administracion-de-sistemas/44-servidor-pxe-con-ubuntu-18-04
  299.  
  300. ## TUTORIAL PARECIDO AL LIBRO ##
  301. 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
  302.  
  303. --
  304.  
  305. 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/
  306.  
  307. --
  308.  
  309. - DHCP (redeszone): https://www.redeszone.net/tutoriales/internet/que-es-protocolo-dhcp/
  310.  
  311. - Servidor proxy (Wikipedia): https://es.wikipedia.org/wiki/Servidor_proxy
  312.  
  313. - isc-dhcp-server (help.ubuntu.com): https://help.ubuntu.com/community/isc-dhcp-server
  314.  
  315. - Qué son los DNS Google y como usarlos (): https://bioxnet.com/como-usar-los-dns-google-8-8-8-8/
  316.  
  317. - How to Install and Configure DHCP Server on Ubuntu 18.04 LTS (linuxhint): https://linuxhint.com/install_dhcp_server_ubuntu/
  318.  
  319. - Modo promiscuo (Wikipedia): https://es.wikipedia.org/wiki/Modo_promiscuo
  320.  
  321. - Setup Static IP on Ubuntu 18.04 LTS Desktop and Server Operating System (linuxhint): https://linuxhint.com/static_ip_ubuntu/
  322.  
  323. --
  324.  
  325. - TFTP (Wikipedia): https://es.wikipedia.org/wiki/TFTP
  326.  
  327. --
  328.  
  329. - inetd (Wikipedia): https://es.wikipedia.org/wiki/Inetd
  330.  
  331. - demonio / daemon: https://es.wikipedia.org/wiki/Daemon_(inform%C3%A1tica)
  332.  
  333. --
  334.  
  335. ¿Qué es apache2 en Linux? (ComputerHoy.com): https://www.compuhoy.com/que-es-apache2-en-linux/
  336.  
  337. --------------------------------
  338.  
  339. - 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.
  340.  
  341. - How To Check Your Ubuntu Version in the Command Line (4 Methods) (kinsta.com): https://kinsta.com/knowledgebase/check-ubuntu-version/
  342.  
  343. - ¿Qué significa 'lsb'?(enmimaquinafunciona.com): https://www.enmimaquinafunciona.com/pregunta/179228/que-significa-lsb-en-lsb_release
  344.  
  345. - 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
  346.  
  347. - mkdir command in Linux (GeeksforGeeks): https://www.geeksforgeeks.org/mkdir-command-in-linux-with-examples/
  348.  
  349. - rmdir command in Linux (GeeksforGeeks): https://www.geeksforgeeks.org/rmdir-command-in-linux-with-examples/?ref=gcse
  350.  
  351. - rmdir command in Linux (rm -r) Not Empty Directories(LinuxTect): https://linuxtect.com/linux-rmdir-not-empty-directories/
  352.  
  353. - tar command in Linux (Hostinger): https://www.hostinger.es/tutoriales/como-usar-comando-tar-linux
  354.  
  355. - cp command in Linux (rapidtables.com): https://www.rapidtables.com/code/linux/cp.html
  356.  
  357. - cp command in Linux (ibm.com): https://www.ibm.com/docs/bg/aix/7.1?topic=files-copying-cp-command
  358.  
  359. --------------------------------
  360.  
  361. - Ubuntu 18.04 LTS (Bionic Beaver) Netboot (archive.ubuntu.com): https://cdimage.ubuntu.com/netboot/bionic/
  362.  
  363. --
  364.  
  365. - Sistemas operativos en red. Núñez Rodríguez, M.ª de las Mercedes · Nieto Santos, Silvia. Editorial Síntesis. ISBN: 9788491712954. Año: 2019.
  366. https://www.sintesis.com/sistemas%20microinform%C3%A1ticos%20y%20redes-363/sistemas%20operativos%20en%20red-ebook-2639.html
Tags: ubuntu PXE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement