pure-ftpdでWindows共有フォルダを公開する

今までWindowsのFilezilla Serverを使用してFTPを公開していましたが、最近Raspberry Pi 4を導入したので、WindowsのFTPフォルダをラズパイにマウントし、ラズパイをFTPサーバに変更したので、そのメモです。

共有フォルダのマウント

# cifs-utlsをインストール
sudo apt-get install cifs-utils

# マウントポイントの作成
sudo mkdir /mnt/ftp

# Windowsの共有フォルダをマウント
sudo mount -t cifs //192.168.xxx.xxx/ftp /mnt/ftp -o username=USER,password=PASS,dir_mode=0777

mountのオプションにある dir_mode というのが重要で、普通にマウントしただけでは、後ほど作成するftpuserではアクセスできず、chownやchmodすることができませんでした。このオプションを使用することで、誰でもフルアクセスできるようになります。

pure-ftpdの設定

pure-ftpdのインストールと設定をします。
たった1分でFTPサーバーを作る Raspberry Pi コピペ道場Pure-FTPdでポート変更をしたい。 – Qiita を参考させていただきました。

# まずはpure-ftpdのインストール
sudo apt-get -y install pure-ftpd

続いてftpgroupというグループを作成し、ftpuserというユーザーをホームディレクトリとログイン権限なしで作成します。

sudo groupadd ftpgroup
sudo useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/null

次に、pure-ftpd用のバーチャルユーザー(ここではuploaderという名前)を作成し、ルートディレクトリを先程マウントした /mnt/ftp に設定します。
なお、このときftpacountのパスワードの設定を求められるので入力します。

sudo pure-pw useradd uploader -u ftpuser -g ftpgroup -d /mnt/ftp -m
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb

次にpure-ftpdの待ち受けポートの変更とPASVポートの指定をします。
個人的な利用なので、ポート21は閉じて使用しています。

# sudoでは拒否されたので、suでrootに切り替え
su

# 待ち受けポートを2121に固定
echo ",2121" > /etc/pure-ftpd/conf/Bind

# PASVポートの範囲を40110〜40210に固定
echo "40110 40210" > /etc/pure-ftpd/conf/PassivePortRange

# rootでの作業終了
exit

因みにconfigっぽいテキストファイルもありますが、そこを変更しても何の意味もないようです。

最後にpure-ftpdを再起動して完了です。

sudo service pure-ftpd restart

ファイヤーウォールの設定

ufwを使用しているので、先程指定したFTPの待ち受けポートとPASVポートを開放します。

# 2121と40110〜40210の開放
sudo ufw allow 2121/tcp
sudo ufw allow 40110:40210/tcp

# リロードして完了
sudo ufw reload

ルータの設定

ルータのポートフォワードの設定で、ポート2121と40110〜40210をRaspberry Piに向けて設定完了です。

コメント

タイトルとURLをコピーしました