
.NET Core (C#) で書かれた、Linux と Windows の両方に対応したハニーポット FTP サーバー。
BearFTP はハニーポットFTPサーバーで、ハッカーの試みを記録し、パブリックIPブラックリストデータベースへ報告するように設計されています。
このソフトウェアは以下の環境でテストされ、完璧に動作します:
私たちはスムーズに動作させるために、いくつかのプロジェクトを依存関係として使用しています:
BearFTP には .NET Core 3.1 以降が必要です。
Release タブからバイナリをダウンロードするか、自分でコンパイルしてください。
Windows の場合、以下を実行します
C:/BearFTP/BearFTP/bin/Release/netcoreapp3.1> ./BearFTP.exe
Linux の場合、以下を実行します
$ dotnet BearFTP.dll
プログラムはエラーを表示して終了するはずです。config.json を編集してください
{
"PortDef": 21,
"PortPasv": 21,
"Hostname": "127.0.0.1",
"Banner": "My very own FTP server located at %host%",
"Token": "",
"Report": true,
"Ban": true,
"PunishScans": true,
"AllowAnonymous": false,
"PerIPLogs": false,
"AnonStat": true,
"ConsoleLogging": true,
"ActiveMode": true,
"Max_PerSecond": 5,
"Max_Total": 6,
"BanLength": 3600,
"MaxErrors": 6,
"BufferSize": 8192,
"MaxThreads": 50,
"Files": [
{
"Name": "readme.txt",
"Content": "Hello!"
}]
}
動作させるには、PortPasv を他の値に変更し、PortPasv が PortDef と等しくならないようにしてください。他のオプションは任意です。 4 MBを超えるファイルの使用は強くお勧めしません! ハニーポットを実際のFTPサーバーとしてファイル共有に使用しないでください!
貢献したいですか? 素晴らしい!
開発には VS2019 と .NET Core 3.1 を使用しています。
現在のTODOリストは次のとおりです:
MIT
| Key | Value |
|---|
| PortDef | 新しい接続に使用するポートに置き換えてください(デフォルトは21) |
| PortPasv | PASVモード用のポートに置き換えてください(デフォルトは1222) |
| Hostname | お使いのPC/サーバーの実際のパブリックIPv4に置き換えてください。PASV接続の開始に使用されます。IPv4を使用してください。ドメインには対応していません |
| Banner | TCPハンドシェイク直後に送信されるバナー。%host% は現在のホスト名に置き換えられます |
| Token | 不正なIPを報告するための AbuseIPDB トークン |
| Report | 不審なアクションを報告しますか? |
| Ban | 不審なアクションを行ったユーザーをBANしますか?(二重報告を防ぐため、BANは1時間です) |
| PunishScans | nmapスキャナーをBAN/報告しますか? |
| AllowAnonymous | ユーザーが "anonymous" ユーザー名でログインすることを許可しますか? |
| PerIPLogs | 個別IPのログを作成します。"iplogs" フォルダが必要です |
| AnonStat | バージョン使用状況に関する匿名統計を送信しますか?(当方には使用中のBearFTPバージョンのみが見えます。個人情報は一切含まれません) |
| ConsoleLogging | コンソールに試行をログ出力しますか? |
| ActiveMode | Activeモードの使用を許可しますか?(PORTコマンド) |
| Max_PerSecond | 1つのIPから1秒間あたりの最大接続数。ベースソケットにのみ適用されます |
| Max_Total | 1つのIPからの最大アクティブ接続数。ベースとPASVの両方に適用されます |
| BanLength | BANの長さ(秒)。3600秒 = 1時間 |
| MaxErrors | 無効なFTPコマンドの実行試行回数の最大値 |
| BufferSize | RETRでのファイル用バッファサイズ。2048〜8192程度で問題ありません。ダウンロード速度を決定します |
| MaxThreads | BearFTPが生成できる、クライアントによって制御されるスレッドの最大数 |
| Files[] | ファイルの配列 |
| Files[Name] | ファイル名 |
| Files[Content] | ファイルの内容(文字列)。先頭に --- を付けるとファイルから読み込みます(例: "---file.exe") |