常時起動の自宅サーバではないのですが、一定の期間だけ仲間うちで共有したいファイルがありfreeFTPdでSFTPサーバを立てていました。
その様子は下記記事でも書きました。
Windows10でSFTPサーバを動かす(freeFTPd) - うれしいブログ
インターネットは恐ろしいところ
おとなしくデフォルトの22番ポートでルータに穴開けて外部からのアクセス可能な状態にしていましたが、予期せぬアクセスが来ること来ること。
数秒ごとにログインを試行するのを数分繰り返すのを、数分~数十分おきに絶えずくるので恐ろしくなります。
freeFTPdのログ機能をオンにする
freeFTPdのログモードをオンにしておくと、「いつ」「どこから」「どんなユーザ」でアクセスしようとしたか、ログが残ります。
デフォルトでは以下のパス・ファイル名でログが保存されます。
C:\Program Files (x86)\freeFTPd\freeFTPd-sftp.log
なぜ不正アクセスとわかるかというと、ログに「どんなユーザ」でアクセスしようとしたか残るんですね。
うちのSFTPはfreeFTPd上で専用のユーザを1つだけ作成してやっているので、windowsアカウントとも連動してません。root とか admin とか anonymous とか存在しないユーザでチャレンジしてくるログをみると、「あ~、とりあえず適当にアクセス試してるのね」ってわかるわけです。
数秒毎に違うユーザでアクセスをトライしてくるので、たぶん自動でアクセスできそうなところにコマンドをうちまくっているんでしょう。ネットワーク資源の無駄遣いなので、こういう不正かどうかはわからないけど不必要なアクセスはどちらかのプロバイダとかで自動検知して一定時間遮断してくれたらいいんですけどね。
freeFTPd側にも不正アクセスが続くとbanする機能があるようですが、それでもアクセスがとまらないので、ルータ側のブラックリストにIPを手入力して防いでいました。それにしてもいろんなところから来るんで手作業ではまったく追いつかない。。。。
ルータと連携するようなセキュリティソフトとかあるんでしょうけど、とりあえずポート番号を変更して対処しました。
ポート番号を変更してサービスをストップスタート
ポート番号を変更したら、右下のストップ、スタートしないと有効になりませんので注意。
ネット公開前に、自分自身でアクセスをテストしてみましょう。(下記のポート番号はスクショ用のサンプルです。実際にはこんなポート番号、ユーザ名はつかってません)
ホスト名にlocalhostと記述すると、freeFTPdを動かしているそのPC上でSFTPアクセスできるかどうか試すことができます。ローカルホストとは「自分自身」という意味です。
あとは自宅のルータに穴開ける
これは自宅のルータのマニュアルや「ポート解放」でググってもらうしかないんですが、うちのルータだと以下のようなメニューにありました。
転送ルール→ポートマッピング設定
SFTPのPCのIPと、さきほど設定したポート番号を指定すればOK。
このオペレーションはよく理解してからやってくださいね。よくわからないからってワイルドカードですべてのポートとか許可しちゃうと大変なことになりますから(PC乗っ取られたり)。
効果は絶大
効果は絶大。関係ない人からのアクセスがぱったりやみました。
いやー、よかった、よかった!
ポート番号は5桁
いちおうつかえる番号が決まっているようです。
以下、wikipedia ( ポート番号 - Wikipedia )から引用
シンプルすぎるftpだけど、それはそれで便利かも
SFTPサーバ立てるときにググったとき、一番多かったやりかたがWindowsにSSHDをインストールするやりかた。
でもいま考えると、こんなに総当たり式でアクセス試してくる人が多いとしったら、気軽にsshdなんて動かすもんじゃない。恐ろしすぎる。
freeftpは単機能でsftpとしてアクセスはできてもsshアクセスはできないので、もしuser/passwordがばれても最小限の被害ですむ、はず。