このエントリーをはてなブックマークに追加
スポンサーリンク

Tcp-Wrapperの設定

Tcp-Wrapperとは

LinuxをCD-ROMからインストールして、外部からアクセスできるようにしたとします。そのまま1時間ほど放置しておくと、おそらくもう別の何者かがログインしていて、SPAMメール送信の踏み台等にされている事と思います。なぜなら、今までサーバーが設置されてなかったIPアドレスに新たにサーバーが設置されたかどうかをチェックしている人が、世界中にいるからです。

SPAMメール送出業者や、他のサーバーへ攻撃する人にとって、最も都合が良いのは「他の誰かのせいにできる事」です。そのため、他人のサーバーを乗っ取って悪用しようと常に狙っているわけです。

パスワードを誰にも教えていなければ大丈夫か、と言うとそうでもなく、既存の英単語総当りや、アルファベットa〜zzzzzzzzzまでの総当たりでパスワードやぶりを試みたりされます。相手は自動スクリプトを使ってきますので、すぐすぐでなくともいずれバレてしまうでしょう。

そこで、ログインを制御する設定をします。Tcp-Wrapperは、telnet、ssh、ftpのログインを制限する事ができます。

hosts.allowでアクセス許可を設定する

まず、hosts.allowというファイルで、許可するアクセス元を設定します。IPアドレスやネットワークアドレス、ドメインで設定することができます。

・IPアドレスを記述する場合
特定のアドレスからのアクセスを許可する場合、たとえば

in.telnetd : 211.6.132.150
sshd : 211.6.132.150

のようにして、特定のIPアドレスからのtelnetとsshのアクセスを許可します。

・すべての許可をする場合
ALL : 127.0.0.1

とすることで、ローカルホスト(つまり自分自身)からのすべてのサービスを許可します。また、

in.ftpd : ALL

とすることで、ftpに関してはすべてのアクセス元を許可します。

・ネットワークアドレスを記述する場合
in.telnetd : 192.168.0.
のように、途中でピリオドで止めることで左側の一致するアドレス(つまりローカルネット)からのアクセスを許可することができます。ただし、この方法では256IP全部開いてしまうので、128以下のアドレス帯に対して許可する場合は、ネットマスクで指定します。

例)
in.telnetd : 192.168.10.0/255.255.255.248

・ドメイン名で記述する場合
in.telnetd : .bbtec.net

のように、先頭にピリオドをつけることで、 xxxxx(任意).bbctec.netからのアクセスを許可することができます。たたし、固定IPではないプロバイダに対してアクセスの許可を設定するのは危険ですので、通常は固定IPに割り当てられたドメインで指定します。

www.nifty.com
のようにした場合、サブドメインまで完全に一致するアクセス元からのアクセスのみ許可されます。

あまりさまざまな場所からの許可を出してしまうと、セキュリティーホールになってしまいますし、攻撃者自身に逆引き権がある場合は進入されてしまうので、ドメインで指定するのは許可ではなく禁止を設定する時に使う方が良いです。

hosts.denyですべてを禁止する

すべてを禁止にしたら「それじゃさっき設定したのは無意味ではないか」と思われるかもしれません。しかし、hosts.allowとhosts.denyでは、hosts.allowの方が優先されるため、まずhosts.denyで『すべて禁止』という設定をしておきます。

この設定をしておかないと、せっかくアクセス元の許可を設定しても、「結局はもともとすべての場所からアクセスできてしまった」という事になってしまいます。

・すべてのサービスを禁止する
all : all

これで、hosts.allowで指定されなかった条件ではログインできなくなります。

・特定のサービスを禁止する
共有サーバーなどで、いきなりすべてのアクセスを禁止してしまうと、他のユーザーが困る場合もあるでしょう。そこで、特定のサービスのみ禁止する事ができます。たとえば、telnetのみ禁止にする場合、

in.telnetd : all

のようにします。ただし、特定のサービスのみ禁止する場合でも、hosts.denyはall : all にしておいて、hosts.allowに許可するサービス名だけを指定した方がセキュリティーは向上します。
スポンサーリンク