HimaJyunWebサーバを初めて公開した人が驚くのはボットからの攻撃の多さ。IPレベルで全域的に攻撃してるのか、Googleにインデックスされていないサイトでも攻撃ログが残っていることがあります。今回はこのボットの特性を逆手にとって、Webサーバのセキュリティをほんの少しだけ向上させる(かもしれない)方法をご紹介しようと思います。スポンサーリンク一応言っておくと、私はセキュリティの専門家ではないので、あくまで手法の一つ程度で捉えて下さい。結論から言うと、「管理外のドメインでのアクセス(IP直打ち)があった場合にページを見せない」事です。いうことかというと、ボットからのアクセスは「Hostヘッダが不正」である事が多いです。IP直打ちでアクセスしてるからなのか、Hostヘッダを正しく扱えない玩具なのかは分かりませんが、大抵普通じゃないアクセスが来ます。(HTTP/1.0とか)そうです、VirtualHostを応用して明らかに普通じゃないアクセスを調理してやるのです。リダイレクトでもOKIP直打ちや管理外ドメインのアクセスを正しいドメインにリダイレクトするようにしておけば、ユーザの利便性が向上するかも?Hostヘッダを正しく送れないボットはリダイレクトを辿りませんし、辿ったところでどちらにせよHostヘッダを正しく送れないので問題ないです。いえ、普通はIP直打ちでアクセスされる事はありませんし、403やnginxの444(切断)でも十分OKです。私は前までリダイレクトさせていたのですが、あまり意味はなさそうだったので現在は403や444を設定しています。懸念Hostヘッダを正しく扱えない(ほぼイコールでHTTP/1.1が使えない)クライアントがアクセス出来なくなりますが、そもそもきょうびHTTP/1.1が使えないクライアントなんか居ないと思って問題ないです。HTTP/2も出たか、という時代にHTTP/1.0なんて古墳から出土したブラウザみたいなものですよ。流行りのSSL対応やHTML5、CSS3なんかを視野に入れていると古墳から出土したブラウザなんかはそもそも論外ですし。実際に設定してみるといっても、VirtualHostの使い方が分かっていれば簡単です。VirtualHostが使えるならばApacheでもnginxでもそれ以外でも。設定を読めばだいたい何をしたいのかは分かると思いますけど......nginxでは「default_server」が使えるのでこれを指定します、これで正しくないリクエストをこのVirtualHostが受け持つようになります。Apacheの場合はそれらが使えないので、最初に読み込まれるように読み込み順序に気を付けてください、sites-availableに設定を置いて、sites-enabledにリンクを張るタイプのやり方の場合は000-defaultとかにすればいいかと。_;」です、Apacheに該当する設定はないみたいなので「any」で代替するパターンが多いかと思います。後は403や444などの好きな応答を返すだけです。上の例ではログは捨てていますが、必要であれば保存して研究してみるのも面白いでしょう。実際の効果は?割と引っかかってます。この設定を行えばボットの攻撃が実際に公開しているサイト(WordPressとか)に行く事がなくなるので、ついうっかり何かマズい物がサーバ上に残っていた場合、みたいな時にダメージを受けるリスクが減らせるかと思います。HTTP/1.0なんか居ないと思って良いでしょうし、VirtualHostを使うのであれば一緒に設定しておくと良いでしょう。......続きを読む→[Bukkit/Spigot]別世界への移動時に/titleを表示するプラグイン作ったこん、マイクラ鯖缶の@HimaJyunです。Encrypt、便利ですよね。Valueを取得するMuninプラグインを作ったNEXTプログラムでMinecraftのスキンから頭だけを抜き出す方法ナカのヒト:HimaJyun​散って美しいのは桜だけです、情報はまとまっていた方が美しいのです。