FTP サーバプログラムはいくつか存在しますが、FreeBSD 付属の ftpd を拡張した BSDftpd-ssl の例を紹介します。
FTP サーバに接続した際、サーバがクライアントに応答するメッセージの修正です。
ftpd.c
変更前:
if (hostinfo) reply(220, "%s FTP server (%s) ready.", hostname, version); else reply(220, "FTP server ready.");
変更後:
if (hostinfo) reply(220, "%s FTP server (%s) ready.", hostname, version); else reply(220, "Drive Network FTP Server Ready");
ftpd は -h 付きで起動すると if (hostinfo) が false となるので、常に -h 付きで起動する場合は、上記の様に 2 段目のみ変更するか、そもそも変更も不要かもしれません。
-h 付きか否かに関わらずメッセージを固定化する場合は、単に
reply(220, "Drive Network FTP Server Ready");
の様に分岐も不要とすることで、より堅実かもしれません。
- バージョン隠蔽 (sendmail)
- バージョン隠蔽 (Apache)
- バージョン隠蔽 (ftpd)
- バージョン隠蔽 (popd)