Làm cách nào để tắt mô-đun hạt nhân nf_conntrack trong CentOS 5.3 mà không biên dịch lại kernel


10

Tôi đang chạy CentOS 5.3 và muốn tắt mô-đun nf_conntrack để cải thiện hiệu suất mạng cho haproxy. Tôi đang chạy iptables với một số quy tắc đơn giản. Tôi không thực sự cần theo dõi kết nối.

Tôi đang chạy trên máy chủ đám mây Rackspace, vì vậy tôi không thể chạy kernel tùy chỉnh. Tôi đã thử chạy modprobe, nhưng nó không hoạt động.

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

Tôi muốn tiếp tục chạy iptables sau khi trích xuất cái này, vì vậy tôi không thể bỏ tất cả các bộ lọc mạng. Bất cứ ai có bất kỳ suy nghĩ?

Câu trả lời:


16
  1. xóa mọi tham chiếu đến mô đun trạng thái trong iptables. Vì vậy, không có quy tắc như

    -Một INPUT -m bang - liên bang, THÀNH LẬP -j CHẤP NHẬN

    mô đun trạng thái yêu cầu mô đun nf_conntrack (ip_conntrack)

  2. xóa dòng sau (nếu nó tồn tại) trong / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Mô-đun đó yêu cầu ip_conntrack mà chúng tôi đang cố gắng bỏ qua.

  3. tải lại iptables mà không có quy tắc nhà nước của bạn.

    sudo iptables -F

    # thêm quy tắc thực sự của bạn

  4. thả các mô-đun. Tôi đã phải sử dụng:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. xác nhận bạn không có tham chiếu đến / Proc / net / nf_conntrack


1
TUYỆT VỜI cảm ơn Willy Tarreau, người tạo ra haproxy, vì sự giúp đỡ tuyệt vời trong danh sách gửi thư haproxy!
dùng22277

Có ai biết làm thế nào bạn đảo ngược bước 4 nếu bạn cần?
UpTheCux

Khi tôi thực hiện "modprobe -rf xt_state" và "modprobe -rf nf_conntrack_ipv6", nó nói "FATAL: Module xt_state đang được sử dụng." (Trên centos), tôi có thể làm gì?
nghĩa tự làm

Trên Ubuntu, tôi có thể chạy "iptables -F" và "modprobe -rf xt_state nf_conntrack_ipv4" mà không gặp bất kỳ lỗi nào.
nghĩa tự làm

5
  • Còn việc thêm mô-đun vào /etc/modprobe.d/blacklist.confthì sao?

  • Bạn đã thử chưa:

    rmmod -f modulename
    

    Mặc du:

           -f - lực lượng
              Tùy chọn này có thể cực kỳ nguy hiểm: nó không có hiệu lực trừ khi
              CONFIG_MODULE_FORCE_UNLOAD đã được đặt khi kernel được biên dịch.
              Với tùy chọn này, bạn có thể xóa các mô-đun đang được sử dụng,
              hoặc không được thiết kế để loại bỏ, hoặc đã được đánh dấu là
              không an toàn (xem lsmod (8)).
    

4

Nếu bạn đang chạy Haproxy, bạn cần hai loại quy tắc trong iptables để vô hiệu hóa conntrack trong cổng 80: những quy tắc cho các kết nối từ máy khách đến bộ cân bằng của bạn và các loại khác từ bộ cân bằng của bạn đến bộ phụ trợ.

Đây là một ví dụ hợp lệ:

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

Khi tôi thực hiện "modprobe -rf xt_state" và "modprobe -rf nf_conntrack_ipv6", nó nói "FATAL: Module xt_state đang được sử dụng." (Trên centos).

"Được sửa đổi" có thể hữu ích, nó có thể làm giảm số lượng sử dụng của bất kỳ mô-đun nào: http://www2.informatik.uni-freiburg.de/~danlee/fun/moduse/

Chìa khóa là: dịch vụ ip6tables dừng

và thêm nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 vào /etc/modprobe.d/blacklist.conf

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.