Debian 将网络接口配置为网桥/网络交换机
2024年3月29日如何在 Debian 或 Ubuntu Linux 服务器下安装和配置 TFTP 服务器来配置网络设备,例如远程启动无盘设备或通过 PXE 启动远程加载类 Unix 操作系统?
教程详情 | |
---|---|
难度级别 | 中间的 |
根权限 | 是的 |
要求 | Debian/Ubuntu tftpd-hpa |
美东时间。阅读时间 | 5分钟 |
tftpd 是简单文件传输协议的服务器。 TFTP协议广泛用于支持无盘设备的远程启动或加载操作系统。 Debian 或 Ubuntu 可以使用以下任一 tftpd 服务器:
- atftpd– 高级 TFTP 服务器。
- tftpd– 简单的文件传输协议服务器。
- tftpd-hpa– HPA 的 tftp 服务器。
- dnsmasq– 轻量级 DNS、TFTP 和 DHCP 服务器。
在本教程中,我将安装和配置 tftpd-hpa。
警告:TFTP 服务器/协议提供的安全性很低。确保 TFTP 服务器位于防火墙系统后面。
tftpd-hpa TFTP 服务器安装
以 root 用户身份键入以下 apt-get 命令:
$ sudo apt-get install tftpd-hpa
或者
# apt-get install tftpd-hpa
您将按如下方式升级(确保将目录名称设置为/srv/tftp):
输出示例:
读取软件包列表...完成 构建依赖关系树 读取状态信息...完成 将安装以下新软件包: tftpd-hpa 0 个已升级、1 个新安装、0 个要删除、15 个未升级。 需要获取 0 B/49.1 kB 的档案。 此操作后,将使用 201 kB 的额外磁盘空间。 预配置软件包... 选择先前取消选择的软件包 tftpd-hpa。 (正在读取数据库...当前安装的 281779 个文件和目录。) 解压 tftpd-hpa(来自.../tftpd-hpa_5.0-18_amd64.deb)... 处理 man-db 的触发器... 设置 tftpd- hpa (5.0-18) ... 启动 HPA 的 tftpd:in.tftpd。
配置
编辑 /etc/default/tftpd-hpa,运行:
# vi /etc/default/tftpd-hpa
示例配置:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"
如何启动/停止/重新启动 tftpd-hpa 服务器?
键入以下命令:
服务 tftpd-hpa 状态 服务 tftpd-hpa 停止 服务 tftpd-hpa 启动 服务 tftpd-hpa 重新启动 服务 tftpd-hpa 强制重新加载
输出示例:
接下来,您需要将所有启动文件放置在 /srv/tftp 目录中。您可以为各种操作系统和第三方固件创建如下目录结构:
# cd /srv/tftp
# mkdir {openbsd,freebsd,netbsd}
# mkdir -p linux/{debian,ubuntu,rhel,centos,fedora,suse}
# mkdir -p firmwares/{linksys,cisco,soekris,pata,sata,ipmi,nic}
# ls -l
# ls -l linux/
# ls -l firmwares/
如何测试我的 tftpd 服务器?
您需要安装名为 tftp 的 tftp 客户端。它是 Internet TFTP(简单文件传输协议)的用户界面,允许用户在远程计算机之间传输文件。远程主机可以在命令行上指定,在这种情况下,tftp 使用 host 作为默认主机。
安装简单文件传输协议客户端(tftp)
键入以下命令:
$ sudo apt-get install tftp
或
# apt-get install tftp
输出示例:
读取软件包列表...完成 构建依赖关系树 读取状态信息...完成 将安装以下新软件包: tftp 0 个已升级、1 个新安装、0 个要删除、15 个未升级。 需要获取 18.9 kB 的档案。 此操作后,将使用 53.2 kB 的额外磁盘空间。 Get:1 http://debian.osuosl.org/debian/squeeze/main tftp amd64 0.17-18 [18.9 kB] 在 1 秒内获取 18.9 kB (10.5 kB/s) 选择先前取消选择的软件包 tftp。 (正在读取数据库...当前安装的281794个文件和目录。) 解压tftp(来自.../tftp_0.17-18_amd64.deb)... 处理man-db的触发器... 设置tftp(0.17-18) ...
测试 tftpd 服务器
在此示例中,我将 OpenBSD.org 中的 pxeboot 文件(用于网络安装的第二阶段 PXE 引导程序)放入 /srv/tftp/openbsd/ 目录中,以便通过客户端进行检索,以用于测试目的:
示例输出:
# cd /srv/tftp/openbsd/
# wget http://ftp.openbsd.org/pub/OpenBSD/5.2/i386/pxeboot
--2012-12-01 17:17:09-- http://ftp.openbsd.org/pub/OpenBSD/5.2/i386/pxeboot Resolving ftp.openbsd.org... 129.128.5.191 Connecting to ftp.openbsd.org|129.128.5.191|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 53920 (53K) [text/plain] Saving to: `pxeboot' 100%[======================================>] 53,920 53.0K/s in 1.0s 2012-12-01 17:17:10 (53.0 KB/s) - `pxeboot' saved [53920/53920]
I am also downloading bsd.rd file. It is a compressed RAMDISK kernel; the embedded filesystem contains the installation tools:
# wget http://ftp.openbsd.org/pub/OpenBSD/5.2/i386/bsd.rd
Sample outputs:
--2012-12-01 17:17:25-- http://ftp.openbsd.org/pub/OpenBSD/5.2/i386/bsd.rd Resolving ftp.openbsd.org... 129.128.5.191 Connecting to ftp.openbsd.org|129.128.5.191|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 6422208 (6.1M) Saving to: `bsd.rd' 17% [=====> ] 11,42,782 20.3K/s eta 3m 47s
Finally, verify that both files are downloaded and installed correctly at the /srv/tftp/openbsd/ location:
# ls -l /srv/tftp/openbsd/
Sample outputs:
total 6344 -rw-r--r-- 1 root root 6422208 Dec 1 17:20 bsd.rd -rw-r--r-- 1 root root 53920 Aug 1 22:02 pxeboot
Type the following command from the remote client:
$ tftp tftp-server-ip-here
$ tftp 192.168.1.5
Sample outputs (type the commands highlighted in green color at tftp> prompt):
tftp> status Connected to 192.168.1.5. Mode: netascii Verbose: off Tracing: off Rexmt-interval: 5 seconds, Max-timeout: 25 seconds tftp> get openbsd/pxeboot Received 54234 bytes in 0.0 seconds tftp> get openbsd/bsd.rd Received 6465608 bytes in 0.5 seconds tftp> quit
Firewall configuration
Add firewall rules to your firewall script to open required ports:
## 确保首先加载以下模块 ## modprobe ip_conntrack_tftp modprobe ip_conntrack_ftp ## 防火墙规则为 192.168.1.0/24 打开 tcp/udp tftpd 端口 69 ## / sbin / input -A INPUT -s 192.168.1.0 / 24 -m tcp -p tcp --dport 69 -j接受 / sbin /输入-A输入-s 192.168.1.0 / 24 -m tcp -p udp --dport 69 -j接受
有效吗?
现在,您可以使用DHCP和 TFTP 服务。重新启动测试系统。在 BIOS 中打开 PXE 网络启动。保存并重新启动系统。您将看到有关 BIOS 的信息。按 [Enter](或特殊键)开始 pxe 引导。示例会话: