ฉันจะปิดการใช้งานโมดูลเคอร์เนล nf_conntrack ใน CentOS 5.3 ได้อย่างไรโดยไม่ต้องคอมไพล์เคอร์เนลใหม่


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 - สถานะที่เกี่ยวข้อง, 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
ขอบคุณ Willy Tarreau ผู้สร้าง haproxy มาก ๆ สำหรับความช่วยเหลือที่ยอดเยี่ยมในรายชื่อผู้รับจดหมายของ haproxy!
user22277

ไม่มีใครรู้ว่าคุณจะกลับขั้นตอนที่ 4 ถ้าคุณต้องการหรือไม่
UpTheCreek

เมื่อฉันทำ "modprobe -rf xt_state" และ "modprobe -rf nf_conntrack_ipv6" มันพูดว่า "FATAL: โมดูล xt_state ใช้งานอยู่" (บน Centos) ฉันจะทำอย่างไร
diyism

บน Ubuntu ฉันสามารถรัน "iptables -F" และ "modprobe -rf xt_state nf_conntrack_ipv4" โดยไม่มีข้อผิดพลาดใด ๆ
diyism

5
  • สิ่งที่เกี่ยวกับการเพิ่มโมดูลไป/etc/modprobe.d/blacklist.conf?

  • คุณเคยลองไหม:

    rmmod -f modulename
    

    แม้ว่า:

           -f - แรง
              ตัวเลือกนี้อาจเป็นอันตรายอย่างยิ่ง: มันไม่มีผลเว้นแต่
              CONFIG_MODULE_FORCE_UNLOAD ถูกตั้งค่าเมื่อเคอร์เนลถูกคอมไพล์
              ด้วยตัวเลือกนี้คุณสามารถลบโมดูลที่กำลังใช้งานอยู่
              หรือที่ไม่ได้ออกแบบมาเพื่อลบหรือถูกทำเครื่องหมายเป็น
              ไม่ปลอดภัย (ดู lsmod (8))
    

4

หากคุณกำลังเรียกใช้ Haproxy คุณต้องมีกฎสองประเภทใน iptables เพื่อปิดใช้งาน conntrack ในพอร์ต 80: การเชื่อมต่อจากไคลเอนต์ไปยังบาลานเซอร์ของคุณและอื่น ๆ จากบาลานเซอร์ของคุณไปด้านหลัง

นี่คือตัวอย่างที่ถูกต้อง:

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: โมดูล xt_state ใช้งานอยู่" (บน centos)

"modused" อาจมีประโยชน์สามารถลดจำนวนการใช้งานของโมดูลใด ๆ : http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

กุญแจสำคัญคือ: บริการ ip6tables หยุด

และเพิ่ม 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.