web-dev-qa-db-ja.com

LinuxからIPv4スタックを完全に動的に無効にする方法は?

LinuxからIPv4スタックを無効にするにはどうすればよいですか?私はそれをしたい動的に、つまり、それを有効にしたい場合もあればIPv6スタックのみが必要な場合もあります。それを行うポータブルな方法はありますか?ディストリビューションでそれを行う方法を知っている場合は、それもまた私を大いに助けます。

17
Aldebaran

IRCについて少しおしゃべりした後、Linuxカーネルがipv4とipv6の間でコードを共有しているため、ipv4を完全に無効にすることが完全に不可能になる可能性があります。あなたはtryipv4パーツなしでカーネルをコンパイルしますが、この場合、ipv6はコンパイルされない可能性があります(ただし、何も試みないわけではありません!)。

AFAIKのインターフェースからipv4アドレスを削除できますが、現時点ではipv4を完全に無効にすることはできないと思います。

EDIT:make menuconfigカーネル2.6.36でTCP/IPスタック全体(つまり、ipv6)を無効にすることなく、ipv4を無効にする方法が見つかりませんでした。

21
coredump

これが開発者向けである場合、LD_PRELOADを使用して、単にエラーを返す(または曜日やその他の外部基準に応じて実際のライブラリを呼び出す)スタブ関数を備えた、いくつかの修正されたライブラリを使用できます。

5
ramruma

IPv4を完全に無効にすることは不可能だとは思いませんが、目的によっては、iptablesを使用してすべてのIPv4トラフィックをドロップするだけで十分でしょう。

このようなものが動作するはずです。 IPv4経由でアクセスしているため、どのマシンでもテストしていません。

Sudo iptables -I INPUT -j DROP
Sudo iptables -O OUTPUT -j DROP
2

ほとんどの場合、ipv4モジュールなしでカーネルを再コンパイルする必要があります。 Fedora

システムは127.0.0.1ループバックインターフェイスを使用しているため、完全に無効にすることはできません。
しかし、if-cfgコマンドを使用して、一部のipv4機能を無効にすることができます。

1
MealstroM