Windows10でSFTPサーバを動かす(freeFTPd)

Windows10のPCをSFTPサーバ として動かしてみました。

Windows用のSSHDとかを導入するやりかたがよくわからなかったので、オールインワンになっているフリーソフト「freeFTPd」をインストールしてみました。簡単でした。

freeftpd のダウンロード

freeSSHd and freeFTPd - open source SSH and SFTP servers for Windows

freeFTPd.exe をダウンロードしてインストールします。

インストール

インストールは次へ 次へです。スクショ省略。

設定

デスクトップ上に「freeFTPd」というアイコンができますので、それを右クリックし「管理者として実行」をすると、FTPの設定画面が開きます。

デフォルトではFTPもSFTPも停止しています。

SFTPの設定

今回はSFTPだけできればいいのでSFTPだけ設定します。

まずはユーザを作成します。Windowsに連動したユーザはいやだったのでこのfreeftpd上でだけ有効なユーザを作ります。

まずはAddします。

f:id:kiyoshi_net:20171219225644p:plain

細かいところをいれていきます。たぶん今回のftpサーバ設定作業で設定っぽいところはここだけかもしれません。

  • ユーザ名
  • 「Password stored as SHA1 has」を選択
  • Passwordを入力
  • Homeディレクトリーを入力(注意)
  • SFTPだけにチェック

f:id:kiyoshi_net:20171219225906p:plain

Homeディレクトリーには、SFTPサーバとしてみせたいフォルダを指定してください。SFTPサーバにアクセスしてきた人は、このフォルダ配下が全部見えてしまいますので、公開範囲・階層を考えてフォルダをきめます。

さいごにSFTPのサービスをスタートさせます。

f:id:kiyoshi_net:20171219230123p:plain

Port番号(default:22)も変更できるようですが、とりあえずはそのままで。Start ボタンを押すとウィンドウズファイアーウォールの警告がでますのでOKおします。

スタート後はfreeftpdの窓を閉じてもバックグラウンドで動作しています。画面右下にアイコンがあるのでそこから先程の設定画面をひらくことができます。

SFTPサーバとしての設定は以上です。

インターネット越しでSFTPサーバを公開するためにはポート開放が必要ですが、ちゃんと理解してやらないと外部から進入されたりしてしまいますのでよくググってから実施しましょう。

SFTPクライアント

WindowsでしたらWinSCPかFilezilla が定番のようです。

winscpでも文字コードSJISとしていないと環境によっては文字化けするみたいです。

f:id:kiyoshi_net:20171223100010p:plain

MacでしたらFilezillaでしょうか。

MacのFilezillaでアクセスすると日本語名のフォルダが文字化けしたりするようです。その際は、「ファイル」→「サイトマネージャー」→「文字セット」→「カスタム文字セットを使う」にチェックを入れて、「エンコーディング : shift_JIS」と入力すれば文字化けしないでみれるようです。WindwsはSJIS、MacはEUCなのでしょうか。もうとっくに世界はユニコードで統一されたのかとおもっていましたが、そうでもないようです。

f:id:kiyoshi_net:20171219232245j:plain

iOS用のSCPアプリはまだちゃんと探していません。

文字コードはShift-JIS限定っぽい

設定画面には文字コードを選択する画面はみあたりませんでした。もしかしたら変更方法があるのかもしれませんが。

韓国語など他の言語でフォルダつくっていたのがSFTPクライアント上でみると文字化けしてアクセスできななかったりしました。日本語フォルダは影響ないのでスルー。

その他の機能

シンプル機能のfreeFTPdですが、

  • アクセスログ取得
  • IPアドレスでアクセス軽減(ホワイトリスト、ブラックリスト)

の機能がありました。インターネットから怪しげなユーザでアクセスをトライしてくることがおおくて、そういう変なアクセスは自動でブラックリスト入りさせたいのですが、freeFTPdにはそういった機能はない様なので、ときどきアクセスログみて手動で禁止IPを追加しています。

ネット上でftpサーバを公開してみると、よくわからないところからのアクセスが猛烈にきます。rootとかadminとかanonymousとか、それっぽいユーザ名でアクセスをチャレンジしてくるのですが、そういう違法アクセスを積極的に遮断するような機能はないですね。たとえばrootでアクセスしてきたら一発でそのIPをバンして二度とつながないとか。

実際にはモデムやwi-fiルータ側でそういうアクセスを遮断するか、ポート番号を変えるとか対策をしないといけませんね。。。

付録 : デフォルトのポート番号から変更して運用する方法

kiyoshi.hatenablog.com

自動起動

freeftpdをインストールするとwindows10の「サービス」にfreeFTPdServiceというサービスが現れ、スタートアップの種類は「自動」になっていますが、起動できない状態になっていました。

windows10を再起動しても案の定、freeftpdは起動してきませんでした。

その場合は、以下のフォルダにfreeftpdのショートカットをおいておくと、再起動時に自動でサービスが起動します。

C:\Users\ (ユーザ名) \AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

f:id:kiyoshi_net:20180512183953p:plain

AppDataフォルダは隠しフォルダですので、表示されないかもしれませんが、エクスプローラーで直接入力すれば入れます。





とりあえず、そんなところです。