カーネルを再コンパイルせずにCentOS 5.3のnf_conntrackカーネルモジュールを無効にする方法


10

CentOS 5.3を実行していて、nf_conntrackモジュールを無効にしてhaproxyのネットワークパフォーマンスを向上させたいと考えています。いくつかの単純なルールでiptablesを実行しています。接続追跡は本当に必要ありません。

Rackspaceクラウドサーバーで実行しているため、カスタムカーネルを実行できません。modprobeを実行してみましたが、うまくいきません。

[mmarano@w1 w1]$ sudo modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.

[mmarano@w1 w1]$ uname -a
Linux w1.somewhere.com 2.6.24-23-xen #1 SMP Mon Jan 26 03:09:12 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
[mmarano@w1 w1]$ cat /etc/redhat-release 
CentOS release 5.3 (Final)

これを取り除いた後も引き続きiptablesを実行したいので、すべてのnetfiltersを完全に破棄することはできません。誰もが何か考えを持っていますか?

回答:


16
  1. iptablesの状態モジュールへの参照をすべて削除します。したがって、次のようなルールはありません

    -A INPUT -m state --state RELATED、ESTABLISHED -j ACCEPT

    状態モジュールにはnf_conntrack(ip_conntrack)モジュールが必要です

  2. / etc / sysconfig / iptables-configの次の行(存在する場合)を削除します

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    そのモジュールには、破棄しようとしているip_conntrackが必要です。

  3. 状態ルールなしでiptablesをリロードします。

    sudo iptables -F

    #実際のルールを追加

  4. モジュールをドロップします。私は使用しなければなりませんでした:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. / proc / net / nf_conntrackへの参照がないことを確認します


1
haproxyメーリングリストのすばらしいヘルプを提供してくれたhaproxyの作成者であるWilly Tarreauに感謝します。
user22277 2009年

必要に応じて、手順4を逆にする方法を誰かが知っていますか?
UpTheCreek 2014

「modprobe -rf xt_state」および「modprobe -rf nf_conntrack_ipv6」を実行すると、「FATAL:Module xt_state is in use。」(centos)と表示されますが、どうすればよいですか?
diyism 2014年

ubuntuでは、「iptables -F」と「modprobe -rf xt_state nf_conntrack_ipv4」をエラーなしで実行できます。
diyism 2014年

5
  • モジュールを追加するのはどう/etc/modprobe.d/blacklist.confですか?

  • やってみました:

    rmmod -f modulename
    

    ただし:

           -f --force
              このオプションは非常に危険な場合があります。
              CONFIG_MODULE_FORCE_UNLOADは、カーネルのコンパイル時に設定されました。
              このオプションを使用すると、使用されているモジュールを削除できます。
              または削除するように設計されていない、または
              安全ではありません(lsmod(8)を参照)。
    

4

Haproxyを実行している場合、ポート80でconntrackを無効にするには、iptablesで2種類のルールが必要です。1つはクライアントからバランサーへの接続用、もう1つはバランサーからバックエンドへの接続用です。

以下は有効な例です。

iptables -t raw -I PREROUTING -p tcp --dport 80 -j NOTRACK
iptables -t raw -I PREROUTING -p tcp  --sport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --dport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --sport 80 -j NOTRACK

0

「modprobe -rf xt_state」および「modprobe -rf nf_conntrack_ipv6」を実行すると、「FATAL:Module xt_state is in use。」(centos)と表示されます。

「modused」は便利かもしれません、それはどんなモジュールの使用カウントも減らすことができます:http ://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

キーは次のとおりです。serviceip6tables stop

そしてnf_conntrack、xt_state、iptable_nat、nf_nat、nf_conntrack_ipv4、nf_conntrack_ipv6を/etc/modprobe.d/blacklist.confに追加します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.