- Windows Server でFTP を設定したい。
- Apache をすでにインストールしているので、Apache のFTP にしたい。
Windows Server でIIS を使わないで、Apache FTP サーバーを設置する。
Contents
IIS を使わないFTP サーバーの導入
Windows Server でFTP 接続を開設したいのですが、
先に「Apache」をインストールしているので、
「IIS」をインストールするのはちょっと。。。ということで調べました。
Welcome to Apache FtpServer
https://mina.apache.org/ftpserver-project/index.html
ホームページからの抜粋
Apache FtpServer は、100% 純粋な Java FTP サーバーです。これは、現在利用可能なオープン プロトコルに基づいた、完全でポータブルな FTP サーバー エンジン ソリューションになるように設計されています。FtpServer は、Windows サービスまたは Unix/Linux デーモンとしてスタンドアロンで実行するか、Java アプリケーションに組み込むことができます。また、 Springアプリケーション内での統合のサポートも提供し、OSGi バンドルとしてリリースを提供します。
Apache FtpServer を設定する。
探したら下記のモジュールが見つかりました。
Apache って名前を冠している所もポイントが高い。
左側のカラムから、ダウンロード的なメニューをクリック。
ZIP を落としておけばいいと思う、、、
という事でクリック。
英語でまくしたてられるので、大賢者(google 翻訳)で和訳したり。
特に、どれでも一緒っぽいので、HTTP でダウンロードします。
ちなみに下の方に書いてあるのは、設定ではなくてハッシュ関数を使ってダウンロードしたものが正しいものかどうかを判断するための方法です。
改ざんが怖い人はご参考に。
設定方法について
解凍したところ、そのまま使えそうな雰囲気。
とりあえず動作させるのに使用するのは、下記のフォルダ内のファイルになります。
/
│
├─bin
│ ftpd.bat
│
├─common
│
└─res
│
├─conf
│ ftpd-typical.xml
│ users.properties
│
├─home
│
└─log
ftpd.log
起動方法
ftpd.bat 実行で動きます。
実行するときの引数にコンフィグファイルのパスを指定します。
ショートカット作っておくと楽ですね。
ftpd-typical.xml
conf フォルダの中に、コンフィグファイルっぽいのがあります。
README によると、
「ftpd-typical.xml」がサンプル、
「ftpd-full.xml 」がフルフルのオプションが記述された設定例という事のようです。
今回は「ftpd-typical.xml」を使用します。
「ftpd-typical.xml」の中身をのぞいてみると、ポート指定をしてますね。
さらにその下の方で「users.properties」ファイルを指定している。
これはユーザーを定義しているファイルっぽいです。
users.properties ファイル
ユーザーを追加する場合は、こんな感じで。
パスワードはハッシュ値(MD5)にして書き込みます。
※notepad++ のツール使うと簡単です。
ファイルを大量に送信するなら上限を設けている値をゼロにしておきましょう。
パスワードを平文で書き込む場合は、プロパティをしている際に「encrypt-passwords=”clear”」を指定します。
「ftpd-typical.xml」
JDK のインストール
バッチファイルの中身を見ると、JAVA HOME の確認をしているから、
JAVA インストールしないといけない感じです。
早速インストール。
Corretto 11 を入れました。
JAVA_HOME も確認。
FTP の動作確認
冒頭で説明したftpd.bat ファイルを実行。
設定ファイルを引数にするので、バッチファイルを作るか、コマンドプロンプトなどで実行します。
「FtpServer started」って出ました。
起動時にこんな感じで設定ファイルを読み込んでます。
<インストール先>\bin\ftpd.bat "C:\apache-ftpserver-1.1.1\res\conf\ftpd-typical.xml"
例:
C:\apache-ftpserver-1.1.4\bin\ftpd.bat "C:\apache-ftpserver-1.1.4\res\conf\ftpd-mysetting.xml"
うん、読み込んだ感じがする。
Using XML configuration file C:\apache-ftpserver-1.1.1\res\conf\ftpd-typical.xml…
FtpServer started
ちゃんとポートも「2121」になっています。
FTP コマンドでローカル接続して動作を確認。
Ftp Server へ接続
ユーザーを追加しているので、このユーザーで設定してみます。
使用したFTP クライアントは、「FileZila」です。
こんな感じで設定。
- ホスト名にURL で、ポートは指定したポートを入れます。
- 「平文のFTP のみを使用する」を指定します。
- ユーザ名とパスワードを指定。
接続できた。
ちゃんとFTP サーバー立ってますね。
ログファイルからでも、接続成功が確認できました。
[ INFO] 2022-08-14 15:17:02,942 [] [192.168.3.193] CREATED
[ INFO] 2022-08-14 15:17:02,946 [] [192.168.3.193] OPENED
[ INFO] 2022-08-14 15:17:02,946 [] [192.168.3.193] SENT: 220 Service ready for new user.
[ INFO] 2022-08-14 15:17:02,949 [] [192.168.3.193] RECEIVED: USER ftpuser
[ INFO] 2022-08-14 15:17:02,949 [ftpuser] [192.168.3.193] SENT: 331 User name okay, need password for ftpuser.
[ INFO] 2022-08-14 15:17:02,949 [ftpuser] [192.168.3.193] RECEIVED: PASS *****
[ INFO] 2022-08-14 15:17:02,949 [ftpuser] [192.168.3.193] Login success - ftpuser
[ INFO] 2022-08-14 15:17:02,968 [ftpuser] [192.168.3.193] SENT: 230 User logged in, proceed.
[ INFO] 2022-08-14 15:17:02,968 [ftpuser] [192.168.3.193] RECEIVED: OPTS UTF8 ON
[ INFO] 2022-08-14 15:17:02,968 [ftpuser] [192.168.3.193] SENT: 200 Command OPTS okay.
[ INFO] 2022-08-14 15:17:02,968 [ftpuser] [192.168.3.193] RECEIVED: OPTS MLST size;modify;type;
[ INFO] 2022-08-14 15:17:02,968 [ftpuser] [192.168.3.193] SENT: 200 Command OPTS okay.
[ INFO] 2022-08-14 15:17:02,983 [ftpuser] [192.168.3.193] RECEIVED: PWD
[ INFO] 2022-08-14 15:17:02,983 [ftpuser] [192.168.3.193] SENT: 257 "/" is current directory.
[ INFO] 2022-08-14 15:17:02,983 [ftpuser] [192.168.3.193] RECEIVED: TYPE I
[ INFO] 2022-08-14 15:17:02,983 [ftpuser] [192.168.3.193] SENT: 200 Command TYPE okay.
[ INFO] 2022-08-14 15:17:02,983 [ftpuser] [192.168.3.193] RECEIVED: PASV
[ INFO] 2022-08-14 15:17:02,983 [ftpuser] [192.168.3.193] SENT: 227 Entering Passive Mode (192,168,3,192,248,242)
[ INFO] 2022-08-14 15:17:03,000 [ftpuser] [192.168.3.193] RECEIVED: MLSD
[ WARN] 2022-08-14 15:17:03,000 [ftpuser] [192.168.3.193] Releasing unreserved passive port: 63730
[ INFO] 2022-08-14 15:17:03,000 [ftpuser] [192.168.3.193] SENT: 150 File status okay; about to open data connection.
[ INFO] 2022-08-14 15:17:03,000 [ftpuser] [192.168.3.193] SENT: 226 Closing data connection.
まとめ
・Apache FtpServer はインストール不要で使えます。
・実行にはJDK が必要。
※ JAVA_HOME が設定されている事。
・設定ファイルはサンプルがそのまま使えます。
ユーザー定義のファイルもそのまま使えます。
・バッチファイル起動時に、任意のXML ファイル(設定ファイル)を引数に指定します。
- 基本的な環境設定とユーザー定義の反映方法
- バッチファイル起動時にXML を指定して読み込ませる。
- 上記のXML に指定されているuser.properties が読み込まれる。
参考サイト
ちょっと覚えとこブログ >Apache FtpServer (3) 設定ファイルの編集Part1
以上です。