Cursos Servidores con Centos 6
Sistema Operativo ALDOS
MongoDB Banner
Curso PHP
Dezoft

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Configuración de servidor TFTP en CentOS 7

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2018 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Acerca de TFTP.

TFTP (Trivial File Transfer Protocol) es un protocolo de transferencia de archivos simple similar a una versión muy básica de FTP. A menudo se utiliza para transferir pequeños archivos entre computadoras en una red de área local, como por ejemplo para iniciar el sistema desde los archivos compartidos por un servidor.

Normalmente se utiliza sólo para iniciar estaciones de trabajo sin unidad de almacenamiento. Tiene muy poca seguridad y se recomienda mantenerlo deshabilitado y sólo habilitarlo sólo cuando relamente vaya a ser utilizado.

URL: https://tools.ietf.org/html/rfc1350

Equipamiento lógico necesario.

En CentOS y Red Hat™ Enterprise Linux.

Ejecute lo siguiente:

yum -y install tftp-server xinetd syslinux

Edite el archivo /etc/xinetd.d/tftp:

vim /etc/xinetd.d/tftp

Cambie disable = yes por disable = no:

# default: off
# description: The tftp server serves files using the trivial file transfer
#       protocol.  The tftp protocol is often used to boot diskless
#       workstations, download configuration files to network-aware printers,
#       and to start the installation process for some operating systems.
service tftp
{
        disable = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -c -s /var/lib/tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

Habilite el servicio xinetd para que inicie junto con el sistema durante el siguiente inicio:

systemctl enable xinetd

Ejecute lo siguiente para iniciar el servicio xinetd:

systemctl start xinetd

Instale el servidor DHCP:

yum -y install dhcp

Edite el archivo /etc/dhcp/dhcpd.conf:

/etc/dhcp/dhcpd.conf

Añada el siguiente contenido y reemplace los valores resaltados por los que correspondan a su red de área local:

ddns-update-style interim;
ddns-updates on;
ignore client-updates;
authoritative;
default-lease-time 900;
max-lease-time 7200;
option ip-forwarding off;
option domain-name "alcancelibre.org.mx";
option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org;

allow booting;
allow bootp;
class "pxeclients" {
        match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
        next-server 192.168.1.1; filename "pxelinux.0";
        }

shared-network redlocal {
        subnet 192.168.1.0 netmask 255.255.255.0 {
                option routers 192.168.1.254;
                option subnet-mask 255.255.255.0;
                option broadcast-address 192.168.1.255;
                option domain-name-servers 192.168.1.254;
                range 192.168.1.64 192.168.1.254;
        }
}

Habilite el servicio dhcpd para que inicie junto con el sistema durante el siguiente inicio:

systemctl enable dhcpd

Ejecute lo siguiente para iniciar el servicio dhcpd:

systemctl start dhcpd

Modificaciones necesarias en el muro cortafuegos.

Es necesario abrir los puertos 69/UDP (tftp), 67/UDP (dhcp) y 80/tcp (http).

Firewalld.

Ejecute lo siguiente —asumiendo que la zona predeterminada de Firewalld es home— para abrir el puerto inmediatamente:

firewall-cmd --zone=home --add-service=tftp
firewall-cmd --zone=home --add-service=dhcp
firewall-cmd --zone=home --add-service=http

Ejecute lo siguiente si quiere hacer las reglas permanente:

firewall-cmd --permanent --zone=home --add-service=tftp
firewall-cmd --permanent --zone=home --add-service=dhcp
firewall-cmd --permanent --zone=home --add-service=http

Shorewall.

Edite el archivo /etc/shorewall/rules:

vi /etc/shorewall/rules

Añada el siguiente contenido:

#ACTION    SOURCE    DEST    PROTO     DEST    SOURCE #        PORT    PORT(S)1
ACCEPT    all    fw    udp    67
ACCEPT    all    fw    udp    69
ACCEPT    all    fw    tcp    80

Reinicie el servicio:

systemctl restart shorewall

Procedimientos.

Proceda a crear el directorio /var/www/centos7.

/var/www/centos7

Copie todo el contenido del primer DVD de CentOS 7 dentro de /var/www/centos7.

Si utiliza Apache como servidor HTTP, proceda a crear el archivo /etc/httpd/conf.d/centos7.conf:

vim /etc/httpd/conf.d/centos7.conf

Añada el siguiente contenido:

Alias /centos7 /var/www/centos7

Recargue la configuración de Apache para aplicar los cambios:

systemctl reload httpd

NGinx es un servidor HTTP más eficiente y rápido para la transferencia de archivos. Prefiera utilizar NGinx si está familiarizado con éste. Si utiliza NGinx como servidor HTTP, proceda a crear el archivo /etc/nginx/default.d/centos7.conf:

vim /etc/nginx/default.d/centos7.conf

Añada el siguiente contenido:

location = /centos7 {
    root /var/www;
}

Recargue la configuración de NGinx para aplicar los cambios:

systemctl reload nginx

Copie todo el contenido de /usr/share/syslinux/ dentro de /var/lib/tftpboot/:

cp -r /usr/share/syslinux/* /var/lib/tftpboot/

Proceda a crear el directorio /var/lib/tftpboot/centos7:

mkdir -p /var/lib/tftpboot/centos7

Copie dentro de éste los archivos initrd.img y vmlinuz que encontrará dentro del DVD de CentOS 7.

Proceda a crear el archivo /var/lib/tftpboot/pxelinux.cfg/default:

vim /var/lib/tftpboot/pxelinux.cfg/default

Añada el siguiente contenido donde debe reemplazar 192.168.1.1 por la dirección IP de su servidor:

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://192.168.1.1/centos7 devfs=nomount

Proceda a configurar un equipo o máquina virtual para utilizar PXE para iniciar sistema.

Configuración inicio PXE en máquina virtual de VirtualBox.

El inicio del sistema se puede ver así:

Inicio de sistema utilizando PXE.

Deberá aparecer la ventana de menú de TFTP.

Menú de TFTP.

Ver la versión para imprimir