今まで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に向けて設定完了です。
コメント