CentOS 8 でTFTPサーバを構築

ちょっと古めのNWスイッチの設定をバックアップするために、TFTPサーバが必要になった。

CentOS 7で構築しようか迷ったけど、CentOS 8でもAlmaLinuxなどへ移行できそうなので、CentOS 8で用意することに。

環境

$ cat /etc/redhat-release
CentOS Linux release 8.3.2011

TFTPサーバのインストール

dnfコマンドで導入

# dnf install tftp-server

xinetd も利用するのでインストール

# dnf install xinetd

TFTPサーバの設定

以下を作成する。

/etc/xinetd.d/tftp 
----------------------------------------
service tftp
{
  socket_type = dgram
  protocol = udp
  wait = yes
  user = root
  server = /usr/sbin/in.tftpd
  server_args = -c -u root -s /var/lib/tftpboot
  disable = no
  per_source = 11
  cps = 100 2
  flags = IPv4
}

上記の設定では、転送されたファイルは、/var/lib/tftpboot 以下に保存される。
tftpboot の owner が root なので、rootで動作するように -u root をつける。
新規ファイルの作成を許可するため,"-c" オプションをつける。


xinetdを起動し、自動起動にも追加

# systemctl start xinetd
# systemctl enable xinetd

firewallの設定

UDP/69を許可する。

firewalldのリッチルールで恒久的設定を行う例)

firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=${sw_ip} port port=69 protocol=udp accept"

${sw_ip} の部分は、TFTPの送信元になるスイッチのIP。

NWスイッチのconfigをTFTPサーバへコピーできるか動作確認する。