IptablesのINPUTでいつsportまたはdportを使用しますか?

IptablesのINPUTでいつsportまたはdportを使用しますか?

ローカルネットワークのユーザーがポート22を使用しないようにしたいと思います。私のLinuxサーバーはトラフィックを制御します。iptables。どのルールが最も適切ですか?

iptables -A INPUT -i $LAN -p tcp --sport 22 -j DROP

または

iptables -A INPUT -i $LAN -p tcp --dport 22 -j DROP

重要:この規則は単なる例です。回答からポート例を選択できます。

dport私はチェーンの合計がsportどのシナリオで使用されるかを知りたいと思いますINPUT。答えは他の例を使うことができます

PS:質問の目的は、ローカルLANネットワークユーザーがこのポート(または他のポート)にアクセスするのを防ぐことです。したがって、ルールはローカルLANネットワーク(WANではない)のインターフェイスのみをターゲットにする必要があります。$LANLAN インターフェイスの変数です (例enp2s1:eth1など)。

答え1

dport私はチェーンの合計がsportどのシナリオで使用されるかを知りたいと思いますINPUT

コンピュータのサービスへのアクセスを制限したい場合がよくあります。 TCPハンドシェイクの最初のパケットはクライアントからサーバーからなるため、チェーン内のdportローカルINPUTサービスへのアクセスを制御したり、dportチェーンからOUTPUT削除されたサービス(ローカルホスト上)へのアクセスを制御したりするためによく使用されます。 )。

iptables -A INPUT -p tcp --dport 22 -j DROP // prevents access to a local SSH server
iptables -A OUTPUT -p tcp --dport 22 -j DROP // prevents access to a remote SSH server

ほとんどのTCPベースのプロトコルは、クライアントがバインドされているポートには興味がありません。管理者は特定のクライアントポートからのみローカルサービスへのアクセスを許可できますが(デフォルトでは、Linuxでは1024未満のポート番号にバインドするには追加の権限が必要であることに注意してください)、これは一般的ではありません。

答え2

iptables -A INPUT -p tcp --sport 22 -j DROP

SSHサーバーのINPUTフレームがブロックされます。これにより、外部SSHサーバーにアクセスできなくなります。

iptables -A INPUT -p tcp --dport 22 -j DROP

SSH クライアントの INPUT データフレームがブロックされます。これにより、誰もあなたのSSHサーバーにアクセスできなくなります。私はこれがあなたが望むものだと思います。

注:ホストを保護する一般的な方法は、すべてをブロックして必要なものを許可することです。おそらくufwあなたを保護するのに役立ちます。ほとんどの要件を満たすより高いレベルのファイアウォールです。 (ufw接続方向を処理します。iptableデータフレームの方向は低レベルです。)

関連情報