鯖memo

主にDebianを使って色々と遊んでみます

Debian WhezzyにTFTPサーバをインストールしてネットワーク機器の設定ファイルをバックアップする

f:id:log134:20150124233828p:plain

Debian Whezzy にTFTPをインストールします。
TFTPとは何ぞと簡単に説明すると、パスワード認証のないFTPです。
認証が無いということで余り一般では使われることはありません。

なぜそのTFTPが必要かといいますと、大抵のネットワーク機器が設定ファイルのダウンロードやアップロードにこのTFTPを使うからです。
今回もシスコのネットワーク機器の設定ファイルをバックアップするためにTFTPサーバを作ります。

このTFTPその他の用途で言うと、PXEブートなどでも使われるのでインフラエンジニアには馴染みのあるプロトコルと言えるでしょう。

TFTPのインストール

# apt-get install tftpd-hpa

これだけです。簡単ですね。

設定ファイルを編集

# cat /etc/default/tftpd-hpa 

TFTP_ADDRESS="192.168.100.100:69"を自分のIPに置き換えます。

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="192.168.100.100:69"
TFTP_OPTIONS="--secure"

デフォルトでは全てのIPをListenしているので、必要なIPで待ち受けるようにします。
なるべく、というかセオリーですがインターネットから直接接続できるIPでは待ち受けないようにする必要があります。
どうしてもグローバルIPでListenする必要がある場合は、TCP Wrapperでアクセス制限を必ずしましょう。

TFTPを再起動させます。

# /etc/init.d/tftpd-hpa restart

ネットワーク機器の設定ファイルをダウンロードできるうようにする

# chmod 700 /srv/tftp
# touch /srv/tftp/FILENAME.conf
# chown -R tftp:nogroup /srv/tftp/
# chmod 666  /srv/tftp/FILENAME.conf

デフォルトの設定ではTFTPは新規にファイルを作ってくれないので、予めFILENAME.conf を作っておく必要があります。
ファイルを作成し、ディレクトリにも適切なパーミッションと所有権与えておきます。

アクセス制限

上で述べたようにアクセス制限をしておきます。

# vi /etc/hosts.allow

192.168.100.200 というのが今回使用しているネットワーク機器のIPアドレスなので、こことの接続を許可します。

in.tftpd: 192.168.100.200

上以外のIPアドレスからの接続は拒否します。

# vi /etc/hosts.deny

in.tftpd: ALL

以上でTFTPの設定が終わりました。

ネットワーク機器から設定ファイルをアップロード

ネットワーク機器から設定ファイルをアップロードします。
今回はCisco製のL3スイッチの設定ファイルをバックアップします。

> enable
# conf t
# copy running-config tftp:
Address or name of remote host []? 192.168.100.100
Destination filename [xxxxxx]? FILENAME.conf
Writing FILENAME.conf !
xxxx  bytes copied in x.xxx secs ( bytes/sec)

copy running-config tftp: を実行し、プロンプトに沿ってTFTPのIPアドレス、ファイル名を入力すれば無事アップロードが完了します。

TFTPサーバ側で確認

cat /srv/tftp/FILENAME.conf

とやって設定ファイルが見えれば問題ありません。