ルータによるアクセス制限の方法についてのメモ。
apacheのログに不審なアクセスが記録されていた。
58.62.172.114 - - [28/Jul/2009:02:17:53 +0900] "CONNECT 205.188.251.43:443 HTTP/1.0" 405 355 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:19:55 +0900] "CONNECT 64.12.200.89:443 HTTP/1.0" 405 353 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:21:57 +0900] "CONNECT 64.12.202.116:443 HTTP/1.0" 405 354 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:23:58 +0900] "CONNECT 205.188.251.43:443 HTTP/1.0" 405 355 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:25:59 +0900] "CONNECT 64.12.200.89:443 HTTP/1.0" 405 353 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:28:02 +0900] "CONNECT 64.12.202.116:443 HTTP/1.0" 405 354 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:30:02 +0900] "CONNECT 205.188.251.43:443 HTTP/1.0" 405 355 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:31:59 +0900] "CONNECT 64.12.200.89:443 HTTP/1.0" 405 353 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:34:00 +0900] "CONNECT 64.12.202.116:443 HTTP/1.0" 405 354 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:36:00 +0900] "CONNECT 205.188.251.43:443 HTTP/1.0" 405 355 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:37:59 +0900] "CONNECT 64.12.200.89:443 HTTP/1.0" 405 353 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:39:59 +0900] "CONNECT 64.12.202.116:443 HTTP/1.0" 405 354 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:45:57 +0900] "CONNECT 64.12.202.116:443 HTTP/1.0" 405 354 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:48:00 +0900] "CONNECT 205.188.251.43:443 HTTP/1.0" 405 355 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:49:56 +0900] "CONNECT 64.12.200.89:443 HTTP/1.0" 405 353 "-" "-" 58.62.172.114 - - [28/Jul/2009:02:51:56 +0900] "CONNECT 64.12.202.116:443 HTTP/1.0" 405 354 "-" "-"
58.62.172.114というアドレスの持ち主が私のサーバを踏み台にして他のサーバへアクセスしているらしい。”CONNECT 205.188.251.43:443 HTTP/1.0″という部分は443ポート(SSL)で205.188.251.43に対して接続を試みているという意味。結果は全てステータス405で失敗に終わっているが,気味が悪いので一応58.62.172.114というアドレスからのアクセス制限という対策をしておくことにする。
アクセス制限をする方法は,思いついたのは2つ。一つ目は,私はサーバをubuntuで運用しているので,iptablesを設定してパケットの通過を遮断するという方法。もう一つはルータにて特定のアドレスを遮断するという方法。応用が利いて実践的なのはiptablesにてアクセス制限を実施する方法。簡単なのはルータにてアクセス制限をする方法。iptablesの設定は別に難しいというわけではないが,幅広い設定をすることができるために覚えることが多く,動作テストに試行錯誤を必要とするため多少手間がかかる。今回は特定のipアドレスからのアクセスのみ制限をできたらいいのでルータにて設定してみることにする。(私自身iptablesの設定は前にやったことがあるけれど,思い出すのがしんどい・・・)
私が使っているルータについて。BUFFALOのWHR-HP-G54という機種。無線Lanに対応した家庭用のルータ。今気づいたが,パケットフィルタリングの機能が意外と充実している模様。
アクセス制限を設定してみる。
- ルータの管理画面にログインする。そしてパケットフィルタのページを表示させる。(右画像)
- IPフィルタ登録情報の編集ボタンをクリックしてルールを追加する。動作は無視,方向はWAN→LAN,送信元にアクセス制限をするipアドレスを入力する。宛先は空白にすると全てが対象になるならしい。プロトコルは全てのプロトコルを対象にする。入力が終わったら設定ボタンをクリックして保存する。
ルータにて特定のipアドレスの設定をやってみたが,効いてるのかどうかはしばらく様子見。ところで,特定のipアドレスのアクセス制限をするのにapacheで設定する方法はあるのだろうか。今回のような踏み台にすることを目的にアクセスして来られた場合,htaccessで設定をしてもアクセス制限はできない。htaccessは特定のディレクトリやファイルに対してアクセスを制限することはできるが,他のサイトに対する接続に対しては制限できない。調べれば設定方法があるかもしれないが,今のところは不明。
設定していて気づいたが,このパケットフィルタ機能はLAN→WANの方向にもアクセス制限をすることができるようになっている。例えば,自分の子供が居たとして,自宅のインターネット環境から未成年者には不適切な有害サイトにアクセスができないように設定をするということもできる。中毒性が高いオンラインRPGや出会い系サイト,SNSサイトなど,ドメインをwhois検索で調べてそのホストのサーバipアドレスをパケットフィルタで設定すれば強制的に閲覧できないようにすることができる。または,やめたくてもやめられない人などにも有効な対策になるかもしれない。ただし,2ちゃんねる掲示板のような大規模なサイトへのアクセスを制限するのは,ルータでは手間がかかりすぎる。サブドメインが多数存在しているため,その都度ipアドレスを登録しないといけないので,やるならiptablesなどのファイアウォールソフトで2ch.netのドメインに対してパケットを飛ばないように設定するしかない。
ブログ管理者様
こちらのページ「特定のipアドレスをルータでアクセス制限する」にての解説を拝読しました事で、私のサーバーのセキュリティー管理に役立ちました。
貴殿に御礼をお伝えしたくメールを致した次第です。
貴殿に於かれましてはお忙しいと存じます中、本当に申し訳ありませんが、
本ページ以外にも、セキュリティー的なノウハウがありますでしょうか。
お教えいただきたいなどと思いました次第です。どうか、お願いしたいです。