特定の IP のみが特定のポートにアクセスできるようにするにはどうすればよいですか?

特定の IP のみが特定のポートにアクセスできるようにするにはどうすればよいですか?

データベースがインストールされた中央サーバーと、その中央データベースを呼び出す複数の分散サーバーがあります。セキュリティ上の理由から、中央サーバーには既知のサーバーのみがアクセスできるようにしたいと考えています。

ここで実現しようとしているのは、ポート 5432 にサーバー 192.168.1.5 と 192.168.2.6 からアクセスできるようにすることです。

iptables -A INPUT -s 192.168.1.5,192.168.2.6 -d ??.??.??.?? -p tcp --dport 5432 -j ACCEPT

これは正しいです?

理解できないのは、宛先を指定するオプションです。INPUT の宛先は常にサーバー自体ですよね? では、なぜ構成可能なのでしょうか? 定義する必要があるのでしょうか、それとも省略すると自動的に同じサーバーを指すのでしょうか?

答え1

まず、ルールを 2 つのルールに分割する必要があります (両方の IP を指定する 1 つのコマンドを使用して試してみましたが、機能しているようです)。最終結果は、次の 2 つのルールになります。

iptables -A INPUT -s 192.168.1.5 -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -s 192.168.2.6 -p tcp --dport 5432 -j ACCEPT

2 番目に、 を省略して任意の IP と一致させることができます-d。これはチェーンなのでINPUT、マシンの IP の 1 つと一致する必要があります。

3 番目に、チェーンのデフォルト ポリシーとしてDROPこれらの 2 つのルールのみがある場合、すべての接続が許可されるため、ルールを設定することを忘れないでください。ACCEPTINPUT

RELATEDまた、パケットが両方向に流れるようにトラフィックを許可する必要がある場合もありますESTABLISHED。これはルール(何が許可され、何がドロップされるか)によって異なります。ルールは次のとおりです。

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

関連情報