Как отключить conntrack в Linux

Приведу пример отключения модуля conntrack, для примера возьму операционную систему Ubuntu.

Посмотрим какие conntrack модули загружены:

lsmod |grep conntrack

Пример выгрузки модуля:

rmmod nf_conntrack

Если например возникает ошибка:

rmmod: ERROR: Module nf_conntrack is in use by: xt_conntrack nf_conntrack_ipv4 nf_nat nf_nat_ipv4

То скорее всего в фаерволе добавлены правила для отслеживания состояния соединений, их нужно удалить, приведу пример (не забываем сохранить правила, чтобы при запуске операционной системы они вновь не добавились и не спровоцировали загрузку conntrack):

iptables -D INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Возможно указаны также в других правилах:

iptables -D INPUT -s 192.168.5.5/32 -p tcp -m tcp --dport 10050 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.5.5/32 -p tcp --dport 10050 -j ACCEPT

После этого можно выгрузить все модули связанные с conntrack:

rmmod iptable_nat
rmmod nf_nat_ipv4
rmmod nf_nat
rmmod xt_conntrack
rmmod nf_conntrack_ipv4
modprobe -r nf_conntrack

Отключим nf_conntrack_helper чтобы он не запускался при запуске операционной системы:

echo 0 > /sys/module/nf_conntrack/parameters/nf_conntrack_helper
nano /etc/modprobe.d/no_conntrack_helper.conf
options nf_conntrack nf_conntrack_helper=0
nano /etc/sysctl.conf
net.netfilter.nf_conntrack_helper = 0

Проверим:

sysctl net.netfilter.nf_conntrack_helper

Если необходимо не отслеживать соединения только конкретных портов, то можно добавить правила в фаервол, например для порта tcp 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

Смотрите также мою статью:
Тюнинг nf_conntrack

Оставьте комментарий

Добавить комментарий