LINUX.ORG.RU
ФорумAdmin

[linux] iptables как бороться с такими записями в conntrack?


0

1

И таких более 20 тысяч

tcp 6 7196 ESTABLISHED src=MY_IP dst=46.16.x.x sport=80 dport=4729 packets=1 bytes=1480 [UNREPLIED] src=46.16.x.x dst=MY_IP sport=4729 dport=80 packets=0 bytes=0 mark=0 secmark=0 use=2

Что можно с ними сделать? Висят они пока у них время по таймингу не закончится

Ответ на: комментарий от guilder

уже и так уменьшил с 5 дней до 2 часов.
net.ipv4.tcp_syncookies = 1
net.netfilter.nf_conntrack_tcp_timeout_established = 7200

может есть другой путь рубить эту гадость по определенному порту, ну допустим через 30 секунд, если состояние не меняется. Есть какие нибудь идеи?

ssbury ()
Ответ на: комментарий от ssbury

Собери все признаки не нравящихся тебе соединений воедино (порты, адреса, протокол и т.п.) и добавь соответствующие NOTRACK-правила в raw/PREROUTING и raw/OUTPUT.

net.netfilter.nf_conntrack_tcp_timeout_established = 7200

Я бы посоветовал также покрутить nf_conntrack_tcp_timeout_syn_sent, nf_conntrack_tcp_timeout_syn_recv и nf_conntrack_tcp_timeout_unacknowledged. ESTABLISHED там относится к состоянию conntrack (автоматически присваивается после первого пакета), а таймауты вводятся для состояний TCP. TCP-состояние ESTABLISHED для таких соединений присваиваться не должно, т.к. удаленный хост не отвечает на SYN-пакет (src=46.16.x.x dst=MY_IP sport=4729 dport=80 packets=0 bytes=0).

А вообще, посмотри, что у тебя за нафиг на компе творится. Это же от тебя соединения устанавливаются, причем с привилегированного порта 80. Похоже, твоего апача съел какой-то зловред.

// Сорри, надо бежать. Вернусь ориентировочно к 2100.

anonymous ()
Ответ на: комментарий от anonymous

Ничего не понял , если устанавливает моя то почему соединение ESTABLISHED?

И еще кто мне объяснит что это (у меня по дефолту):
net.netfilter.nf_conntrack_tcp_loose = 1

одни советуют поставить - 0 , другие - 3
Объясните как это влияет на [UNREPLIED] в состоянии ESTABLISHED?
1. Правильно ли я понимаю что если 0 то оно сразу из SYN_RECV перейдет в ESTABLISHED и состояние [ASSURED].
2. А что тогда произойдет если установить 3, какое будет состояние у соединения при приходе первой и второй пары пакетов, вроде как они есть но три еще не набралось

ssbury ()
Ответ на: комментарий от ssbury

>нифига себе... через 90 лет...

Вообще-то это была просто такая форма записи времени. Т.е. 21:00 :)
Но я вернулся раньше.

Ничего не понял , если устанавливает моя то почему соединение ESTABLISHED?


Первый пакет — NEW, сразу после него соединение переходит в состояние ESTABLISHED. Это состояния conntrack есличо.
У TCP это SYN_RECV будет. Но состояние TCP в таблице conntrack не отображается, только в netstat или ss.

net.netfilter.nf_conntrack_tcp_loose = 1


Это такая полезная штука, позволяющая conntrack'у подхватывать TCP-соединения с середины. Т.е. если попался пакет, который типичен для уже установленного TCP-соединения, а такого соединения в таблице нет, то запись в ней создается, и пакет получает сразу статус ESTABLISHED. Если установить ее в 0, такой пакет просто отмечается как INVALID, и никаких записей не создается.

Кстати, очень хорошая идея. Попробуй поставить этот параметр в 0, а потом очистить таблицу соединений (conntrack -F, прога conntrack из набора conntrack-tools) и посмотреть, будут ли появляться новые. Если нет — никакой это не зловред, просто у тебя либо параметры TCP неправильно настроены, либо вебсервер глючит. Но если они опять появятся — скорее всего, зловред, сканирующий удаленные хосты.

1. Правильно ли я понимаю что если 0 то оно сразу из SYN_RECV перейдет в ESTABLISHED и состояние [ASSURED].


В общем, да. Только TCP-состояние SYN_RECV и conntrack-состояние ESTABLISHED друг друга не исключают.

2. А что тогда произойдет если установить 3, какое будет состояние у соединения при приходе первой и второй пары пакетов, вроде как они есть но три еще не набралось


Я хз чем оно от 1 по смыслу отличается, но если это не SYN-SYN/ACK будут, тогда они просто как INVALID пойдут. Если SYN-SYN/ACK — SYN пойдет как NEW, SYN/ACK — как ESTABLISHED (при том, что TCP еще для ESTABLISHED рановато).

// Выдохнул.

nnz ★★★★ ()
Ответ на: комментарий от nnz

Установил так:
net.netfilter.nf_conntrack_tcp_loose = 0

Сделал conntract -F, пока все нормально. conntrack -L | grep UNREPLIED , записей нет. Да и сама таблица упала 1700 записей, пока работает так со вчерашнего вечера.
Спасибо.

ssbury ()
Ответ на: комментарий от ssbury

Да вроде пока все нормально. Кто-то может мне хоть примерно объяснить что это было? Почему судя по соединениям (которых уже нет) машина типа была моя да еще и с ESTABLISHED.

ssbury ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.