追加許可IPを追加

追加許可IPを追加

私が参考にしたものは次のとおりです。https://unix.stackexchange.com/a/145933

その場合は、次のようにしてください。

iptables -I INPUT -p tcp -s MY IP --dport 21 -j ACCEPT
iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 21 -j DROP

MY IPポート21にのみ接続できることがわかります。しかし、他の許可IPを追加する方法はありますか?

私はこれを試しました:

iptables -I INPUT -p tcp -s MY OTHER IP --dport 21 -j ACCEPT

ところがまだまだ詰まっているのに、DROPが以前にあったからだと思います。 DROPルールを削除せずに追加できますか?

答え1

オプション-Iはありませんiptables追加(つまり-A、)は次の目的で使用されます。入れる新しいルール。違いは、-A新しいルールが追加されたことです。終わりチェーン、基本的に-Iチェーン内スタートチェーン。

チェーンは順次読み込まれるため、ルールの-j ACCEPT前にルールを処理することが重要です-j DROP

これを行う方法はいくつかあります。

  1. ルールを追加する-A代わりに使用してください。-Iこれにより、ルールが最後に追加され、コマンドの順序を変更しないと正しい順序になります。私は他の2つのオプションよりもこれをお勧めします。
  2. 引き続き使用します-Iが、ルールを変更してください。これにより、-j ACCEPTルールはルールの前に処理されます-j DROP
  3. -Iオプションで、新しいルールを挿入するチェーンの場所である追加の引数(数値)を許可します。パラメータなしでルールを追加したので、-j ACCEPT最初のルール(つまり行1)になります。したがって、2行目に2番目のルールを追加します。

    iptables -I INPUT 2 -p tcp -s 0.0.0.0/0 --dport 21 `-j DROP`
    

しかし、最初のルールなど、多くのルールが必要な場合は、パフォーマンス上の理由でカスタムチェーンを作成する方が良いでしょう。

iptables -N check-ftp
iptables -A check-ftp -s IP1 -j ACCEPT
iptables -A check-ftp -s IP2 -j ACCEPT
[...]
iptables -A check-ftp -j DROP
iptables -A INPUT -p tcp --dport 21 -j check-ftp

これにより、チェーンに「FTP接続」のルールが作成されます。これにより、着信ネットワークパケットがFTPパケットでない場合、netfilterコードはこの特定のパケットを許可するかどうかを決定するために(長い)ルールのリストを繰り返すことなく、すぐに次のルールに進みます。その場合はいFTPパケット、その後〜する長いリストを見てください。

関連情報