阅读(4368) (6)

19.2.2 配置TFTP服务程序

2019-05-16 10:52:03 更新

我们曾经在第11章中学习过vsftpd服务与TFTP服务。vsftpd是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,该如何进行登录认证呢?而TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此接下来配置TFTP服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过vsftpd服务程序将完整的光盘镜像文件传输过去。

    [root@linuxprobe ~]# yum install tftp-server
    Loaded plugins: langpacks, product-id, subscription-manager
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    Resolving Dependencies
    --> Running transaction check
    ---> Package tftp-server.x86_64 0:5.2-11.el7 will be installed
    --> Processing Dependency: xinetd for package: tftp-server-5.2-11.el7.x86_64
    --> Running transaction check
    ---> Package xinetd.x86_64 2:2.3.15-12.el7 will be installed
    --> Finished Dependency Resolution
    Dependencies Resolved
    ================================================================================
     Package Arch Version Repository Size
    ================================================================================
    Installing:
     tftp-server x86_64 5.2-11.el7 rhel 44 k
    Installing for dependencies:
     xinetd x86_64 2:2.3.15-12.el7 rhel 128 k
    Transaction Summary
    ================================================================================
    Install 1 Package (+1 Dependent package)
    Total download size: 172 k
    Installed size: 325 k
    Is this ok [y/d/N]: y
    Downloading packages:
    --------------------------------------------------------------------------------
    Total 1.7 MB/s | 172 kB 00:00 
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
     Installing : 2:xinetd-2.3.15-12.el7.x86_64 1/2 
     Installing : tftp-server-5.2-11.el7.x86_64 2/2 
     Verifying : 2:xinetd-2.3.15-12.el7.x86_64 1/2 
     Verifying : tftp-server-5.2-11.el7.x86_64 2/2 
    Installed:
     tftp-server.x86_64 0:5.2-11.el7 
    Dependency Installed:
     xinetd.x86_64 2:2.3.15-12.el7 
    Complete!

TFTP是一种非常精简的文件传输服务程序,它的运行和关闭是由xinetd网络守护进程服务来管理的。xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启TFTP服务程序,只需在xinetd服务程序的配置文件中把disable参数改成no就可以了。保存配置文件并退出,然后重启xinetd服务程序,并将其加入到开机启动项中(在RHEL 7系统中,已经默认启用了xinetd服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。

    [root@linuxprobe ~.d]# vim /etc/xinetd.d/tftp
    service tftp
    {
            socket_type             = dgram
            protocol                = udp
            wait                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -s /var/lib/tftpboot
            disable                 = no
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    [root@linuxprobe xinetd.d]# systemctl restart xinetd
    [root@linuxprobe xinetd.d]# systemctl enable xinetd

TFTP服务程序默认使用的是UDP协议,占用的端口号为69,所以在生产环境中还需要在firewalld防火墙管理工具中写入使其永久生效的允许策略,以便让客户端主机顺利获取到引导文件。

    [root@linuxprobe ~]# firewall-cmd --permanent --add-port=69/udp
    success
    [root@linuxprobe ~]# firewall-cmd --reload 
    success