Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

sendmail[XXXXX]: NOQUEUE: tcpwrappers (XXXXXX, XX.XXX.XX.X) rejection

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

/var/log/maillogに

sendmail[XXXXX]: NOQUEUE: tcpwrappers (XXXXXX, XX.XXX.XX.X) rejection

のようなアラートがでる。

tcpwrappersの設定

/etc/hosts.allow

→自分自身も設定すること

sendmail:127.0.0.1

/etc/hosts.deny

 

【参考】

sendmail でメール送信時に tcpwrappers rejection と出る | Lonely Mobiler

【AIによる回答】

Rocky Linuxでは、TCP Wrapperはデフォルトでは非推奨となっており、標準のインストールでは含まれていません。現代のLinux環境では、ファイアウォール (firewalldiptables/nftables) を使用したネットワークレベルでのアクセス制御が推奨されています。
ただし、特定のレガシーアプリケーションなどでTCP Wrapperが必要な場合は、EPELリポジトリからインストールして設定することが可能です。
Rocky LinuxにおけるTCP Wrapperの設定手順(非推奨)
1. インストールと有効化
まず、TCP Wrapperパッケージがインストールされているか確認し、必要であればEPELリポジトリを有効にしてインストールします。
bash
# インストールされているか確認
rpm -q tcp_wrappers

# EPELリポジトリをインストール
sudo dnf install epel-release

# TCP Wrapperをインストール
sudo dnf install tcp_wrappers
注意点: Rocky Linux 8以降では、OpenSSHなど主要なサービスがlibwrap (TCP Wrapperのライブラリ) のサポートをデフォルトで終了している場合があります。そのため、TCP Wrapperで制御したいサービスによっては、サービスの設定ファイルを変更してtcpdデーモン経由で実行させる追加の手順が必要です。
2. 設定ファイルの編集
TCP Wrapperの設定は、主に2つのファイルで行います。これらのファイルは最初に一致したルールが適用されるという重要な動作原則があります。
  • /etc/hosts.allow: アクセスを許可するルールを記述します。
  • /etc/hosts.deny: アクセスを拒否するルールを記述します。
/etc/hosts.allowの設定例
特定のIPアドレスからのSSH接続を許可する例です。ローカルホストからのアクセスは常に許可するように設定することが重要です。
bash
# /etc/hosts.allow ファイルを開く
sudo vi /etc/hosts.allow
ファイルに以下を追記します:
# ローカルホストからの全アクセスを許可
ALL: 127.0.0.1, [::1]

# 特定のIPアドレスからのsshd接続を許可 (例: 192.168.1.100)
sshd: 192.168.1.100

# ネットワーク全体からのsshd接続を許可 (例: 192.168.1.0/24)
sshd: 192.168.1.0/24
/etc/hosts.denyの設定例
上記以外のすべてのSSH接続を拒否する例です。
bash
# /etc/hosts.deny ファイルを開く
sudo vi /etc/hosts.deny
ファイルに以下を追記します:
# sshdへの全てのアクセスを拒否
sshd: ALL
重要: SSHで作業している場合、設定を誤るとサーバーに再接続できなくなる危険性があります。設定変更前に、現在の接続が維持されていることを確認し、物理的なアクセスや別の緊急アクセス手段を確保しておくことを強く推奨します。
3. 設定のテスト
設定ファイルは変更後すぐに有効になります。tcpdmatchtcpdchkといったコマンドを使用して、ルールが正しく機能するかテストできますが、これらのツールはすべてのシナリオをカバーできるわけではありません。
推奨される代替手段
前述の通り、Rocky Linuxを含む現代的なディストリビューションでは、TCP Wrapperではなくファイアウォールの使用が標準的です。
  • firewalld: Rocky Linuxのデフォルトファイアウォール管理ツールです。サービス名やポート番号、送信元IPアドレスに基づいて柔軟なルールを設定できます。
  • iptables/nftables: より低レベルで詳細なパケットフィルタリングが可能です。
セキュリティ設定を検討する際は、Rocky Linuxの公式ドキュメントやRed Hat Enterprise Linux (RHEL) のドキュメント(Rocky LinuxはRHELのアップストリーム)を参照し、最新かつ推奨されるセキュリティプラクティスに従うことをお勧めします。
Rocky LinuxでTCP Wrapperをインストールする基本的な手順は、dnf(またはyum)でtcpdumpなどの関連パッケージをインストールし、/etc/hosts.allow/etc/hosts.denyファイルでアクセス制御ルールを設定します。ただし、現代のRocky Linuxではfirewalldが標準のファイアウォールであり、より高度な制御はfirewalld(ゾーン設定など)で行うことが推奨されますが、従来のTCP WrapperもRHEL系互換のため利用可能です。 
インストール手順(コマンド例)
  1. パッケージの確認とインストール:
    • ほとんどの場合、基本的なパッケージはすでにインストールされていますが、念のため確認・インストールします。
    bash
    sudo dnf install tcpdump # TCP Wrapperのデーモンや関連ツールが含まれる場合があります
    
  2. 設定ファイルの編集:
    • /etc/hosts.allow: 許可する接続元とサービスを定義します。
    • /etc/hosts.deny: 拒否する接続元とサービスを定義します。
    • : SSH(sshd)へのアクセスを特定のIPアドレス(例: 192.168.1.100)からのみ許可し、他は拒否する場合。
    • /etc/hosts.allow に追加:
      bash
      sshd: 192.168.1.100
      
    • /etc/hosts.deny に追加:
      bash
      sshd: ALL
      
  3. サービスの再起動(必要な場合):
    • sshdなど、TCP Wrapperで制御するサービス(inetd経由で動作するサービスも含む)を再起動します。
    bash
    sudo systemctl restart sshd
    

     

Rocky Linuxでの注意点(firewalldとの関係)
  • Rocky Linux(RHELクローン)ではfirewalldがデフォルトで有効です。
  • firewalldはポートレベルでの制御を行いますが、TCP Wrapperはサービスレベル(デーモン単位)での制御を提供します。
  • 両方を併用することも可能ですが、基本的にはfirewalldで不要なポートを閉じ、特定のサービスへのアクセスをより詳細に制御したい場合にTCP Wrapper(hosts.allow/deny)を使用します。 
TCP Wrapperとは
UNIX系システムでネットワークサービス(sshdvsftpdなど)へのアクセスを制御する古い仕組みで、libwrap.soライブラリを利用し、ログも記録します。
タイトルとURLをコピーしました