概要
ネットワーク検証を実施する際に、FTPを利用して転送速度を計測することがあると思います。以前であれば、vsftpdを利用してFTPサーバーを立てることが多かったのですが、最近では、デフォルトでFTPがインストールされていないことも多いです。そのため、セキュリティ的にも優れているSFTPサーバーを構築し、SFTPによるファイル転送をできるようにしていきます。
※この方法で作成したSFTPサーバーを利用した、WAN回線の検証方法はこちら
CMLを始めよう!(12.WANエミュレーター)
SFTPサーバーの設定
CML(Cisco Modeling Labs)上のUbuntuノードを利用し設定していきます。
SFTP専用ユーザーを作成し、パスワードを設定します。
sudo useradd sftp-user
sudo passwd sftp-user

SFTP専用ユーザーのホームディレクトリを変更します。
sudo usermod -d / sftp-user

ファイルを読み書きするディレクトリを作成します。
sudo chown root:root /home/
sudo mkdir /home/sftp-user
sudo chown root:root /home/sftp-user
sudo chmod 755 /home/sftp-user

/home配下にsftp-userディレクトリが作成できていることを確認します。

SFTP専用ユーザーのグループを作成します。
sudo groupadd sftponly

SFTP専用ユーザーのグループを変更します。
sudo usermod -G sftponly sftp-user

sshdの設定を変更します。
sudo vim /etc/ssh/sshd_config

“Subsystem sftp /usr/lib/openssh/sftp-server”をコメントアウトし、”Subsystem sftp internal-sftp”を追加します。
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

SFTP専用ユーザーがファイルを読み書きするディレクトリを作成します。
ここでは、”test”ディレクトリを作成しています。
cd /home/sftp-user
sudo mkdir test
sudo chown sftp-user:sftp-user test

“test”ディレクトリが作成されたことを確認します。

SFTP専用ユーザー移動できるディレクトリを制限するために、sshd_configを再度修正します。
sudo vim /etc/ssh/sshd_config

末尾に下記を追記します。
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

問題なく追記できていることを確認します。
cat /etc/ssh/sshd_config

sshdを再起動します。
sudo service sshd restart

これで、SFTPサーバーの設定は完了です。
接続確認
まずは、通常のSSHで接続できないことを確認します。
「This service allows sftp connections only.」と表示され、接続が拒否されます。
ssh sftp-user@localhost

次に、SFTPで接続します。
「Connected to localhost.」と表示され、無事にSFTP接続ができました。
sftp sftp-user@localhost

これで、UbuntuのSFTPサーバー設定は完了です!