bagaimana cara menonaktifkan modul kernel nf_conntrack di CentOS 5.3 tanpa mengkompilasi ulang kernel


10

Saya menjalankan CentOS 5.3 dan ingin menonaktifkan modul nf_conntrack untuk meningkatkan kinerja jaringan untuk haproxy. Saya menjalankan iptables dengan beberapa aturan sederhana. Saya tidak benar-benar membutuhkan pelacakan koneksi.

Saya menjalankan server cloud Rackspace, jadi saya tidak dapat menjalankan kernel khusus. Saya sudah mencoba menjalankan modprobe, tetapi itu tidak berhasil.

[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)

Saya ingin terus menjalankan iptables setelah merobek ini, jadi saya tidak bisa membuang semua netfilters. Adakah yang punya pikiran?

Jawaban:


16
  1. hapus referensi apa pun ke modul state di iptables. Jadi, tidak ada aturan yang suka

    -A INPUT -m state --state TERKAIT, ESTABLISHED -j MENERIMA

    modul state memerlukan modul nf_conntrack (ip_conntrack)

  2. hapus baris berikut (jika ada) di / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Modul itu membutuhkan ip_conntrack yang sedang kita coba selokan.

  3. muat ulang iptables tanpa aturan negara Anda.

    iptables sudo -F

    # tambahkan aturan Anda yang sebenarnya

  4. jatuhkan modul. Saya harus menggunakan:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. konfirmasi Anda tidak memiliki referensi ke / proc / net / nf_conntrack


1
BESAR terima kasih kepada Willy Tarreau, pencipta haproxy, atas bantuan yang luar biasa di milis haproxy!
user22277

Adakah yang tahu bagaimana Anda membalikkan langkah 4 jika perlu?
UpTheCreek

Ketika saya melakukan "modprobe -rf xt_state" dan "modprobe -rf nf_conntrack_ipv6" tertulis "FATAL: Module xt_state sedang digunakan." (Pada centos), apa yang bisa saya lakukan?
diyism

Di ubuntu, saya dapat menjalankan "iptables -F" dan "modprobe -rf xt_state nf_conntrack_ipv4" tanpa kesalahan.
diyism

5
  • Bagaimana dengan menambahkan modul /etc/modprobe.d/blacklist.conf?

  • Sudahkah Anda mencoba:

    rmmod -f modulename
    

    Meskipun:

           -f - Angkatan
              Opsi ini bisa sangat berbahaya: tidak berpengaruh kecuali
              CONFIG_MODULE_FORCE_UNLOAD disetel ketika kernel dikompilasi.
              Dengan opsi ini, Anda dapat menghapus modul yang sedang digunakan,
              atau yang tidak dirancang untuk dihapus, atau telah ditandai sebagai
              tidak aman (lihat lsmod (8)).
    

4

Jika Anda menjalankan Haproxy, Anda memerlukan dua jenis aturan di iptables untuk menonaktifkan conntrack di port 80: yang untuk koneksi dari klien ke penyeimbang Anda dan yang lain dari penyeimbang Anda ke backend.

Ini adalah contoh yang valid:

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

Ketika saya melakukan "modprobe -rf xt_state" dan "modprobe -rf nf_conntrack_ipv6" dikatakan "FATAL: Module xt_state sedang digunakan." (Pada centos).

"dimodifikasi" mungkin berguna, itu dapat mengurangi jumlah penggunaan modul apa pun: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

Kuncinya adalah: layanan ip6tables berhenti

dan tambahkan nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 ke /etc/modprobe.d/blacklist.conf

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.