LINUX.ORG.RU
ФорумAdmin

Как закрыть активное tcp соединение linux?

 


2

2

Здравствуйте. У меня проблема. Сервер иногда подвергается ддос атаки одного человека. Есть tcp соединения при блоке которых через Iptables всё ещё остаются запросы: https://prnt.sc/128bi0d

Я заблокировал ип, н ос него всё ещё висят 51 запрос на tcp порт который оно досило. Соединение обрубается только если я перезагружу приложение которое было под атакой.

Его запросы: netstat -na | grep 117.94.104.57 tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35696 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35728 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35784 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35672 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35842 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35716 ESTABLISHED

Трафика с него никакого не идёт: tcpdump host 117.94.104.57 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp1s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes ^Z [12]+ Остановлено tcpdump host 117.94.104.57

Как его разорвать желательно автоматически или вручную без перезагрухки порта/приложения?

например создать какое ни будь правило в файрволе, если соединение неактивно х времени разрывать с ним связь.

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

Благодарю. Но это вручную и нужно знать пид процесса. Вообще читал мануал в интернете, попробую ан практике. Хотелось бы конечно что бы автоматически такие вот соединения рвались и не висели создавая нагрузку. Почему это стандартно не происходит вопрос ещё тот.

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

соединения такие должно рвать либо само приложение либо проксирующий фронт, очевидно у тебя ни первого не происходит ни второго нет, тогда почему что-то должно происходить автоматически, вопрос тот еще

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

Ну это всё нужно кодить самому получается я к сожалению в этом профан. Полагаю устройство сетей должно хоть как то работать, имеется ввиду зачем держать откротое соединение которое в бане и которое не посылает никакого трафика. Файрвол это должен делать, поидеи.

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

Проблема в том что при бане ип через Iptables все активные запросы с Ip включая соединение остаётся неизменным. Просто прекращается идти трафик. Почему это происходит я не знаю.

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

Прошу прощения. Я не так понял. Пид приложения знаю. Попробую ваш вариант.

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

sudo gdb -p 4799 -ex «call close(»$FD")" -ex «detach» -ex «quit» GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type «show copying» and «show warranty» for details. This GDB was configured as «x86_64-linux-gnu». Type «show configuration» for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type «help». Type «apropos word» to search for commands related to «word». Attaching to process 4799 [New LWP 23445] [New LWP 27368] [New LWP 30050] [New LWP 1372] [New LWP 5619] [New LWP 8942] [New LWP 10733] [New LWP 17700] [New LWP 22303] [Thread debugging using libthread_db enabled] Using host libthread_db library «/lib/x86_64-linux-gnu/libthread_db.so.1». 0x00007fdae9f3a693 in select () at ../sysdeps/unix/syscall-template.S:84 84 ../sysdeps/unix/syscall-template.S: Нет такого файла или каталога. $1 = 0 Detaching from program: /home/user/bin/newmakro/makro++, process 4799

Возможно я что то делаю не так.

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

похоже на оптимизацию бизнес-модели: уволили эникея, он «дудосит» с домашней кофеварки, новый эффективный МЕНЕДЖЕР ВООХОДИТ В ООЙТИ

trashymichael ★★★ ()

Тюнинг tcp стека в ядре, само закроется.
Так а чем плохо что они висят? Данные то не передаются. А со временем само отвалится.

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

Проблема в том что при бане ип через Iptables все активные запросы с Ip включая соединение остаётся неизменным. Просто прекращается идти трафик.

Все правильно. Ты же просто блокируешь трафик. Что попросил, то и получил.

гм, а кто добавляет в iptables адреса для бана - iptables или какие-то скрипты/проограммы (типа f2b)?

Если сам iptables, то возможно поможет https://github.com/vel21ripn/ipt_tcpbreak который умеет посылать в обе стороны RST.

А если скрипт, то пускай он и закрывает соединения. «ss -K» + ядро с CONFIG_INET_DIAG_DESTROY ему помогут в этом.

Вообще на тему закрытия соединений есть разные решения.

vel ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.