2026年11月6日

2026年11月6日

TCP Wrappers(hosts.allow/hosts.deny)の設定方法

はじめに

本記事では、Linuxサーバーのセキュリティ強化のために有効なアクセス制御を行うためのTCP Wrappersを使用し、hosts.allowとhosts.denyファイルの設定方法について説明します。TCP Wrappersは、ネットワークサービスに対する接続要求を許可または拒否するためのユーティリティで、サーバーのセキュリティレベルを上げるのに役立ちます。

症状・背景

1. 不要なアクセスが頻発している場合

2. セキュリティポリシーを明確化する必要がある場合

3. 設定可能なセキュリティレベルを増やしたい場合

4. ネットワークサービスに対する攻撃を防ぐため

手順・設定方法

ステップ1: hosts.allowとhosts.denyファイルの存在確認

# /etc/hosts.allowと/etc/hosts.denyが存在するか確認
ls -l /etc/hosts.{allow,deny}

ステップ2: hosts.allowファイルの基本設定

# デフォルトでは空または存在しない場合、エイリアスやサービス名を指定して許可するIPアドレスを追加します
echo "sshd: 192.168.1.0/24" > /etc/hosts.allow

# コメントアウトは#
# 複数行にまたがる場合は\nで改行

ステップ3: hosts.denyファイルの主要オプション設定

# すべてのサービスに対するアクセスを拒否します
echo "ALL: ALL" > /etc/hosts.deny

# 特定のサービスのみ許可します
echo "sshd: ALL" >> /etc/hosts.deny

# 多数のサービスに対しても一括で設定できます
echo "ssh,ftp: 192.168.0.0/16" >> /etc/hosts.deny

ステップ4: hosts.allowとhosts.denyの組み合わせ

# 具体的な例を追加します
echo "httpd: 192.168.2.3,192.168.2.4" >> /etc/hosts.allow

# ファイルに複数行を追加する場合は\nで改行
echo "mysql: !192.168.0.0/255.255.0.0,192.168.3.4" >> /etc/hosts.deny

ステップ5: 有効性を確認

# hosts.allowとhosts.denyの内容を再読み込みします
sudo service xinetd restart   # xinetdを使用している場合
sudo systemctl reload sshd    # OpenSSHを使用している場合

注意事項

  • hosts.denyはすべてのアクセスを拒否するため、hosts.allowで許可したIPアドレス以外は全て拒否されます。
  • 複数のサービスやIPアドレスを指定する場合は、ファイルに正確な記述を行ってください。
  • セキュリティポリシーを適切に設定し、不必要なアクセスはすべて拒否することを確認してください。

まとめ

1. hosts.allow: 指定されたIPアドレスからの接続を許可します。

2. hosts.deny: デフォルトでは全ての接続を拒否しますが、特定のサービスに対するアクセスを制限できます。

3. セキュリティポリシー: 設定するべきは明確で具体的なIPアドレスやネットワークです。

4. パフォーマンス: TCP Wrappersは効果的なセキュリティツールですが、過度な設定はサーバーのパフォーマンスに影響を与える可能性があります。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ
▲