En este tutorial, lo guiaremos sobre cómo instalar la última versión del servidor Debian 9 a través de un servidor PXE con fuentes espejo HTTP remotas de Internet que ofrecen los espejos de archivos de Debian. El servidor DHCP que usaremos en este tutorial para configurar el entorno PXE será el servidor ISC-DHCP y los archivos Debian de arranque en red serán servidos en la red local por el servidor TFTPD-HPA. La instalación de un sistema a través de PXE puede mejorar la velocidad de instalación y en caso de implementar múltiples instalaciones de Debian en un corto período de tiempo o en los casos en que las máquinas no estén equipadas con una unidad de CD/DVD ROM.
Requisitos
- Debian 9 instalado en una máquina completa o en una máquina virtual.
- Una interfaz de red configurada con una dirección IP estática para el segmento de red que se usará para asignar dinámicamente la dirección IP y otras configuraciones de DHCP y PXE relacionadas.
- Una cuenta local o remota con privilegios de raíz en el servidor Debian o acceso directo a la cuenta raíz a través de la consola del servidor o acceso remoto a través de SSH.
- Se necesita una conexión a Internet para instalar Debian a través de la red.
Configuración inicial
En el primer paso, debe asegurarse de que el sistema Debian que usaremos para instalar nuevos servidores tenga la interfaz de red que se usará para conectarse a un servidor DHCP, configurado con una dirección IP estática.
Para configurar manualmente su tarjeta de interfaz de red, abra el archivo de interfaces de red y edite las siguientes líneas usando su editor de texto preferido, como nano . Reemplace las líneas de configuración de IP que se describen a continuación para que coincidan con sus propias configuraciones de red.
sudo nano /etc/network/interfaces
Interfaces extracto del archivo:
auto ens33
iface ens33 inet static
address 192.168.1.102
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.2 8.8.4.4
dns-search debian.local
Una vez que haya editado el archivo de interfaces de red, guarde y cierre el archivo y baje la interfaz de red, luego suba, para aplicar la configuración, emitiendo los siguientes comandos. Suponiendo que su tarjeta de interfaz de red se llame ens33, emita los siguientes comandos para deshabilitar y habilitar la NIC.
ifdown ens33
ifup ens33
Para verificar si la nueva dirección IP se configuró para la interfaz de red, emita el siguiente comando.
ip a
A veces, la configuración de IP no se aplicará simplemente reiniciando el demonio de red o deshabilitando y habilitando la interfaz. En este caso, debe reiniciar el sistema con el siguiente comando.
init 6
O
systemctl reboot
También debe realizar una actualización completa del sistema emitiendo los siguientes comandos:
apt update
apt upgrade
En el siguiente paso, ejecute el siguiente comando para instalar algunas utilidades necesarias que se utilizarán para administrar aún más su sistema desde la línea de comandos.
apt install wget bash-completion unzip
Instalar y configurar el servidor ISC-DHCP
Para configurar un servidor DHCP y una configuración PXE, inicie sesión en el sistema con la cuenta raíz o una cuenta con privilegios raíz e instale isc-dhcp-server paquete proporcionado por el repositorio de Debian 9 emitiendo el siguiente comando.
apt install isc-dhcp-server
Ahora haga una copia de seguridad del archivo de configuración principal del servidor ISC-DHCP y edite el archivo de configuración del servidor dhcpc para que contenga las siguientes configuraciones.
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
nano /etc/dhcp/dhcpd.conf
dhcpcd.conf extracto del archivo:
ddns-update-style none;
option option-128 code 128 = string;
option option-129 code 129 = text;
authoritative;
log-facility local7;
option arch code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option ntp-servers 192.168.1.102;
option time-servers 192.168.1.102;
option domain-name "debian.local";
option domain-name-servers 192.168.1.1, 192.168.1.2;
allow booting;
allow bootp;
if option arch = 00:07 or option arch = 00:09 {
filename "bootnetx64.efi";
} else {
filename "pxelinux.0";
}
next-server 192.168.1.102;
#default lease 4H, max lease 8H
default-lease-time 14400;
max-lease-time 28800;
}
host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}
En el archivo de configuración anterior, reemplace las siguientes líneas según corresponda.
subnet {..
range 192.168.1.50 192.168.1.100;
Para definir su propio rango de red para que DHCP asigne direcciones IP a este segmento de red
enrutadores opcionales =configure su puerta de enlace IP
opción dirección de transmisión =configurar su dirección de transmisión de red
opción máscara de subred =configure su dirección de máscara de subred de red
opción servidores ntp
opción de servidores de tiempo =configure la dirección IP del servidor NTP de su red
opción nombre-dominio =configure su nombre de dominio de red, si corresponde
opción servidores de nombres de dominio =configure las direcciones IP del servidor DNS de su red
si opción arco =00:07 u opción arco =00:09 =si el dispositivo final es una máquina basada en UEFI, inicie el dispositivo usando bootnetx64.efi archivar o iniciar cualquier otra máquina que no esté basada en UEFI usando pxelinux.0 expediente. Estas máquinas suelen ser sistemas BIOS más antiguos.
siguiente-servidor 192.168.1.102 = Esta es la dirección IP del servidor TFTP, donde se encuentra el archivo pxelinux.0 o bootnetx64.efi se puede encontrar en su red. En este caso el servidor TFTP está ubicado en la misma máquina.
tiempo de concesión predeterminado =tiempo predeterminado en segundos otorgado a una dirección IP antes de que caduque.
tiempo máximo de arrendamiento =tiempo máximo en segundos otorgado a una dirección IP antes de que caduque.
host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}
Así es como se declara una dirección IP estática en el servidor DHCP. El dispositivo con la dirección MAC definida por hardware ethernet declaración siempre obtendrá la misma dirección IP. El nombre de host declarado no tiene importancia. Puede usar cualquier cadena arbitraria para el nombre de host.
Luego abra isc-dhcp-server archivo en /etc/default/ directorio para editar, navegue hasta el final del archivo y agregue su tarjeta de interfaz de red configurada con una dirección IP estática a la línea de interfaces IPv4 como se describe en el ejemplo a continuación. Asegúrese de agregar el nombre de tarjeta de interfaz de red adecuado. Usar ip o ifconfig comandos para enumerar las interfaces de red de su máquina y encontrar el nombre correcto.
nano /etc/default/isc-dhcp-server
Extracto del archivo predeterminado de isc-dhcp-server:
INTERFACESv4=”ens33”
Finalmente, reinicie el demonio DHCP para aplicar los cambios. Verifique el estado del servicio DHCP emitiendo el siguiente comando para verificar si el servicio se ha iniciado.
systemctl restart isc-dhcp-server.service
systemctl status isc-dhcp-server.service
Además, ejecute ss o netstat Comando para enumerar todos los sockets abiertos por servidor DHCP.
netstat –tulpn
ss –tulpn
Si netstat La utilidad no está instalada en su sistema, emita el siguiente comando para instalarla.
apt install net-tools
Instalar servidor TFTP
Para servir los archivos de arranque de red requeridos por los clientes para arrancar Debian de forma remota a través de PXE y TFTP, también necesita instalar un servidor TFTP en su sistema. Uno de los servidores TFTP más comunes y seguros disponibles para LAN es el tftpd-hpa servidor. Los paquetes TFTP-HPA se pueden instalar desde los repositorios oficiales ofrecidos por Debian 9. Ejecute el siguiente comando para instalar el servidor tftpd-hpa en Debian 9.
apt install tftpd-hpa
Una vez instalado el paquete, abra el archivo de configuración predeterminado de TFTPD-HPA y asegúrese de que el archivo tenga el siguiente contenido.
nano /etc/default/tftpd-hpa
tftpd-hpa extracto del archivo:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
Si la línea TFTP_OPTIONS tiene el siguiente contenido, asegúrese de eliminar --create bandera para asegurar el servidor TFTP.
TFTP_OPTIONS="--secure --create"
El crear bandera permite a los clientes remotos cargar archivos en el servidor tftp. Esta opción es peligrosa porque los usuarios arbitrarios pueden cargar o eliminar archivos de la ruta raíz del servidor TFTP.
Finalmente, habilite el servicio en todo el sistema e inicie el servidor TFTP y verifique el estado del demonio tftp emitiendo la siguiente serie de comandos:
systemctl enable tftpd-hpa
systemctl start tftpd-hpa
systemctl status tftpd-hpa
También debe ejecutar netstat o ss comando para enumerar todos los sockets de red abiertos en estado de escucha en su sistema. Los siguientes puertos UDP requeridos por los servidores DHCP y TFTP deben abrirse en su pila de red:67 y 69. Debe abrir estos puertos en su firewall emitiendo los siguientes comandos:
ufw allow 67/udp
ufw allow 69/udp
Si está utilizando iptables reglas sin procesar para administrar la política de firewall en su servidor Debian, agregue las siguientes reglas para permitir que el tráfico entrante UDP de los puertos 67 y 69 pase el firewall para que los clientes puedan acceder a los servidores DHCP y TFTP.
apt-get install iptables-persistent
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 69 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
En el siguiente paso, instalaremos las utilidades del cargador de arranque de Syslinux emitiendo el siguiente comando.
apt install syslinux-utils syslinux
Implementar archivos de Debian 9 Netboot
A continuación, vaya a la página web de Debian netinstall en la siguiente dirección https://www.debian.org/distrib/netinst y descargue la última versión de Debian netboot archive tarball utilizando la utilidad de línea de comandos wget.
wget http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz
Después de que se haya descargado el tarball de Debian netinstall, extraiga el contenido del archivo directamente a la ruta raíz de TFTP ejecutando el siguiente comando.
tar xfz netboot.tar.gz -C /srv/tftp/
También copie el archivo memdisk proporcionado por el paquete Syslinux en la ruta raíz de TFTP y enumere el contenido del directorio TFTP emitiendo los siguientes comandos. El directorio /srv/tftp debe tener el contenido que se muestra en la siguiente captura de pantalla.
cp /usr/lib/syslinux/memdisk /srv/tftp/
ls /srv/tftp/
A continuación, cree un enlace simbólico para el archivo del gestor de arranque UEFI proporcionado por el paquete Debian netinstall a la ruta raíz de TFTP emitiendo el siguiente comando. Además, haga una lista larga del directorio TFTP para ver si el enlace suave apunta correctamente al archivo de arranque de red UEFI.
ln -s /srv/tftp/debian-installer/amd64/bootnetx64.efi /srv/tftp/
ls -l /srv/tftp/
El servidor PXE lee y ejecuta archivos de configuración ubicados en pxelinux.cfg directorio desde la ruta raíz de TFTP en este orden:archivos GUID, archivos MAC y archivo predeterminado. El directorio pxelinux.cfg ya se creó y se completó con el archivo de configuración predeterminado PXE requerido porque anteriormente extrajimos los archivos netboot requeridos del archivo netinstall de Debian a la carpeta /srv/tftp. No es necesario modificar más el archivo de configuración predeterminado de PXE del directorio pxelinux.cfg. Sin embargo, el archivo que realmente controla el menú de arranque inicial de Debian se llama txt.cfg y se encuentra en /srv/tftp/debian-installer/amd64/boot-screens/ directorio. El archivo de configuración pxe predeterminado de pxelinux.cfg
nano /srv/tftp/debian-installer/amd64/boot-screens/txt.cfg
t xt.cfg
label install
menu label ^Install
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet
En caso de que desee utilizar el modo de rescate de Debian a través de PXE, agregue una entrada a este archivo con las siguientes configuraciones.
label rescue
menu label ^Rescue mode
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz rescue/enable=true --- quiet
Para agregar las entradas requeridas para iniciar Debian a través de la red en modo experto o usar el modo de instalación automática, agregue las configuraciones adicionales al archivo txt.cfg como se muestra en los extractos a continuación.
Instalación experta:
label expert
menu label ^Expert install
kernel debian-installer/amd64/linux
append priority=low vga=788 initrd=debian-installer/amd64/initrd.gz ---
include debian-installer/amd64/boot-screens/rqtxt.cfg
Instalación automatizada:
label auto
menu label ^Automated install
kernel debian-installer/amd64/linux
append auto=true priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet
Además, al inspeccionar el contenido de este archivo, verá que el kernel y initrd.gz Las imágenes, que se cargan en la memoria RAM del cliente a través del protocolo de red TFTP, después del menú PXE inicial, se encuentran en /srv/tftp/debian-installer/amd64/
¡Eso es todo! Ahora tiene la posibilidad de iniciar una máquina cliente a través de la red, use todas las entradas que normalmente se muestran al iniciar Debian a través de la imagen del DVD y comience a instalar Debian 9 a través de un servidor PXE.
Para ver los mensajes de registro de DHCP que se intercambian entre los clientes y el servidor en tiempo real, use tail comando contra el archivo syslog del sistema. El servidor DHCP descarta todos sus mensajes de registro en el archivo syslog. Los mensajes de registro del servidor TFTP se pueden observar a través del archivo daemon.log. Las siguientes capturas de pantalla ilustran un extracto de los mensajes de registro emitidos por los servidores DHCP y TFTP.
tailf /var/log/syslog
tailf /var/log/daemon.log
También puede ejecutar el siguiente comando para ver los mensajes de registro generados por el servidor TFTP.
journalctl -fu tftpd-hpa
Para revelar información ampliada sobre las concesiones otorgadas por el servidor DHCP a sus clientes, muestre el contenido de dhcpd.leases archivo usando el comando cat, como se ilustra en el siguiente ejemplo.
cat /var/lib/dhcp/dhcpd.leases
¡Eso es todo! Ha implementado con éxito un servidor PXE en su red. Ahora puede comenzar a instalar Debian a través de la red instruyendo a la máquina cliente para que arranque a través de PXE. Puede arrancar en red una máquina cliente presionando una tecla de función especial durante la inicialización POST de la máquina. Consulte la documentación del proveedor de la placa base de su máquina para averiguar la clave de arranque de red adecuada.
El proceso de instalación de Debian a través de la red es muy similar (solo con algunas pequeñas diferencias) con el proceso de instalación del sistema a través de una imagen ISO de DVD o usando una unidad flash USB de arranque.