Linuxサーバーにiptablesを使用してファイアウォールを設定し、ポート22とポート80のトラフィックのみを受け入れ、他のすべてのポートへのアクセスをブロックするとします。
これらのルールは、クライアントマシンがIPv4アドレスを使用している場合にのみ機能しますか?したがって、ipv6アドレスが使用されている場合、クライアントは私がそれらにしたくないポートにアクセスできますか?(つまり、ポート22およびポート80以外のポート)
Linuxサーバーにiptablesを使用してファイアウォールを設定し、ポート22とポート80のトラフィックのみを受け入れ、他のすべてのポートへのアクセスをブロックするとします。
これらのルールは、クライアントマシンがIPv4アドレスを使用している場合にのみ機能しますか?したがって、ipv6アドレスが使用されている場合、クライアントは私がそれらにしたくないポートにアクセスできますか?(つまり、ポート22およびポート80以外のポート)
回答:
iptables
IPv4では機能しますが、IPv6では機能しません。 ip6tables
は同等のIPv6ファイアウォールであり、とともにインストールされiptables
ます。
最終的にiptables
は、IPv4接続用でip6tables
あり、IPv6接続用です。iptables
ルールをIPv6にも適用する場合は、ルールも追加する必要ip6tables
があります。
あなたがしようとあなたに複製した場合iptables
にルールセットをip6tables
ルールすべてではない、iptables
オーバーきちんとへの意志ポートを行うことができますip6tables
が、それらのほとんどでしょう。
使用するコマンドを適切に移植することを確認する場合は、マンページをip6tables
参照してくださいiptables
。
必要に応じて、ファイアウォールルールリストを提供する(コーズのシステムを特定できる情報を削除する)場合、ip6tables
ルールに一致する同等のルールセットを作成iptables
できます。それ以外の場合は、一般的な質問にのみ回答できます。
ufw
他のファイアウォールマネージャーが存在する理由であり、それに応じて両方にルール自体を追加します。ただし、ここで問題になっているのは、「IPv6を持っている人なら誰でも私のサイトを見ることができますか?」ではありません。より大きな問題は、システムにIPv6アドレスがあるかどうかです。ほとんどの接続には、私のようなクライアントコンピューターからのIPv4とIPv6があります。ただし、リモートサーバーに公開されているIPv6がない場合は、IPv4が接続されます。ただし、私が理解しているように、IPv6を使用している場合は、ルールip6tables
も追加する必要があります。
iptables
AND に対して同じコマンドを実行するスクリプトを作成できip6tables
、一般的なルール-p tcp --dport
は引き続き機能しますが、より複雑なルールは機能しない可能性があります...(など-j REJECT --reject-with [something]
)
-j REJECT --reject-with icmp-host-prohibited
たとえば、拒否パケットはIPv6の異なる名前であるため)
他の人がすでに言っているように、IPv4とIPv6には異なるファイアウォールテーブルがあります。IPv4のようにIPv6のルールを設定することもできますが、IPv6を知らない場合、混乱させる大きなリスクがあります。ICMP
必要なハンドシェイクの部分があるので、IPv6にドロップすることはできません。フレームが大きすぎることを送信者に伝えることなど。これらがなければ、IPv6が一部のユーザーに対して機能しなくなる可能性があります。
ですから、ufw
またはをshorewall6
一緒に使用することを強くお勧めしますshorewall
。iptables
フロントエンドはufw
、IPv4とIPv6の両方をサポートし、1つのまたは2つのインターフェイスを持つサーバー上で素晴らしい作品が、トラフィックをルーティング(ルータやゲートウェイなどの作業)しません。トラフィックをルーティングする場合はshorewall
、iptables
およびで転送するためのルールを手動で追加するなど、より良いものが必要ですip6tables
。
インターフェイスに複数のIPv6アドレスを設定できることを忘れないでください。一部はリンクローカルのみで、一部はグローバルに静的および動的です。そのため、それに応じてルールを設定し、サーバーは正しいアドレスのみをリッスンする必要があります。