커널을 다시 컴파일하지 않고 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를 계속 실행하고 싶기 때문에 모든 넷 필터를 버릴 수는 없습니다. 누구든지 생각이 있습니까?

답변:


16
  1. iptables에서 상태 모듈에 대한 참조를 제거하십시오. 따라서 다음과 같은 규칙은 없습니다.

    -A 입력 -m 상태-상태 관련, 설정 됨 -j 수락

    상태 모듈에는 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

필요한 경우 4 단계를 거꾸로하는 방법을 아는 사람이 있습니까?
UpTheCreek

"modprobe -rf xt_state"및 "modprobe -rf nf_conntrack_ipv6"을 수행 할 때 "FATAL : xt_state 모듈이 사용 중입니다."라는 메시지가 표시됩니다.
diyism

우분투에서 "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를 실행하는 경우 포트 80에서 conntrack을 비활성화하려면 iptables에 두 가지 유형의 규칙이 필요합니다.

유효한 예는 다음과 같습니다.

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가 사용 중입니다."라고 표시됩니다.

"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.