{"id":1641,"date":"2016-07-05T19:12:54","date_gmt":"2016-07-05T16:12:54","guid":{"rendered":"http:\/\/avz.org.ua\/wp\/?p=1641"},"modified":"2022-01-19T14:48:21","modified_gmt":"2022-01-19T12:48:21","slug":"custom-tcp-connection-killing","status":"publish","type":"post","link":"https:\/\/avz.org.ua\/wp\/2016\/07\/05\/custom-tcp-connection-killing\/","title":{"rendered":"\u041a\u0430\u043a \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0441\u043e\u043a\u0435\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 TIME_WAIT"},"content":{"rendered":"<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0431\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u0427\u0430\u0441\u0442\u043e \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e lsof \u0438\u043b\u0438 netstat \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0438 \u0447\u0442\u043e-\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0434\u0435\u043b\u0430\u044e\u0442 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, kill -9). \u041d\u043e \u0432\u043e\u0442 \u0434\u043b\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u0439\u0442\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e \u0438 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u043b \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0431\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435) \u0438\u043b\u0438 \u043f\u0440\u0438\u0431\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435\u043b\u044c\u0437\u044f, \u0443\u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0439. <\/p>\n<div id=\"attachment_1642\" style=\"width: 550px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avz.org.ua\/wp\/2016\/07\/05\/custom-tcp-connection-killing\/tcp_state_diagram\/\" rel=\"attachment wp-att-1642\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1642\" src=\"https:\/\/avz.org.ua\/wp\/wp-content\/uploads\/2016\/07\/tcp_state_diagram-540x407.png\" alt=\"TCP state diagram\" width=\"540\" height=\"407\" class=\"size-large wp-image-1642\" srcset=\"https:\/\/avz.org.ua\/wp\/wp-content\/uploads\/2016\/07\/tcp_state_diagram-540x407.png 540w, https:\/\/avz.org.ua\/wp\/wp-content\/uploads\/2016\/07\/tcp_state_diagram-200x150.png 200w, https:\/\/avz.org.ua\/wp\/wp-content\/uploads\/2016\/07\/tcp_state_diagram-300x226.png 300w, https:\/\/avz.org.ua\/wp\/wp-content\/uploads\/2016\/07\/tcp_state_diagram-768x579.png 768w, https:\/\/avz.org.ua\/wp\/wp-content\/uploads\/2016\/07\/tcp_state_diagram.png 796w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><p id=\"caption-attachment-1642\" class=\"wp-caption-text\">\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438<\/p><\/div>\n<p>\u0422\u0443\u0442 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f perl-\u0443\u0442\u0438\u043b\u0438\u0442\u043a\u0430 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a rel=\"nofollow\" href=\"http:\/\/killcx.sourceforge.net\/\"><strong>killcx<\/strong><\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0447\u044c \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0433\u0434\u0430 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0431\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 TIME_WAIT. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre lang=\"bash\">\r\n# .\/killcx 10.11.12.13:44034\r\nkillcx v1.0.3 - (c)2009-2011 Jerome Bruandet - http:\/\/killcx.sourceforge.net\/\r\n\r\n[PARENT] checking connection with [10.11.12.13:44034]\r\n[PARENT] found connection with [10.10.10.10:22] (ESTABLISHED)\r\n[PARENT] forking child\r\n[PARENT] sending spoofed SYN to [10.10.10.10:22] with bogus SeqNum\r\n[CHILD]  interface not defined, will use [eth0]\r\n[CHILD]  setting up filter to sniff ACK on [eth0] for 5 seconds\r\nf[CHILD]  hooked ACK from [10.10.10.10:22]\r\n[CHILD]  found AckNum [1240626855] and SeqNum [301466544]\r\n[CHILD]  sending spoofed RST to [10.10.10.10:22] with SeqNum [1240626855]\r\n[CHILD]  sending RST to remote host as well with SeqNum [301466544]\r\n[CHILD]  all done, sending USR1 signal to parent [19312] and exiting\r\n[PARENT] received child signal, checking results...\r\n         => success : connection has been closed !\r\n<\/pre>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0435\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u043e\u0440\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043f\u043e SSH \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 10.11.12.13 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c 10.10.10.10. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 10.10.10.10.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 perl-\u043c\u043e\u0434\u0443\u043b\u0435\u0439:<br \/>\n* Net::RawIP (\u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f spoofed packets, CPAN-\u043e\u043c \u043e\u043d \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b, \u0436\u0430\u043b\u0443\u044f\u0441\u044c \u043d\u0430 \u0442\u0435\u0441\u0442\u044b, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c force install Net::RawIP)<br \/>\n* Net::Pcap  (\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0430 TCP-\u043f\u0430\u043a\u0435\u0442\u043e\u0432).<br \/>\n* NetPacket::Ethernet (\u0434\u043b\u044f \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f TCP\/IP-\u043f\u0430\u043a\u0435\u0442\u043e\u0432).<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 libpcap-devel.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441 \u043f\u043e\u0445\u043e\u0436\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0441\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <a href=\"http:\/\/www.digitage.co.uk\/digitage\/software\/linux-security\/cutter\" rel=\"nofollow\"><strong>cutter<\/strong><\/a>. \u041d\u043e \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u043c \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0440\u043e\u0443\u0442\u0435\u0440\u0435.<\/p>\n<p>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043e\u0431\u043e\u0440\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u043c \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 62616 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 10.10.10.10, \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 10.20.20.20:<\/p>\n<pre lang=\"bash\">\r\n[root@avz \/tmp\/cutter-1.04]# .\/cutter 10.10.10.10 62616 10.20.20.20\r\nError: The matching connection terminates on THIS computer.\r\n\r\nNote:\r\n    cutter can only cut connections running over the router or firewall\r\n    on which it is run. It cannot cut connections that terminate locally.\r\n    So: you should run cutter on the firewall\/router, not on the client\r\n    or server machine.\r\n<\/pre>\n<p>\u0427\u0442\u043e, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0431\u044b\u043b\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e. \u041d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u044f \u0435\u0435 \u043f\u043e\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b.<\/p>\n<p>\u0415\u0449\u0451 \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f - \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <strong>tcpkill<\/strong>. \u0415\u0451 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0435 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c (\u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 killcx) &ndash; \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 dsniff, \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043d\u0430 \u0432\u0445\u043e\u0434\u0438\u0442. \u041a\u0430\u043a\u043e\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u044b\u0432\u0430\u0442\u044c \u0435\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Berkeley_Packet_Filter\" rel=\"nofollow\">BPF<\/a>-\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u043a\u043e\u043c \u043a\u0430\u0436\u0434\u043e\u043c\u0443, \u043a\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f tcpdump-\u043e\u043c.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<pre lang=\"bash\">\r\n[root@srv ~]# lsof -i -nP | grep ssh\r\nsshd       1805      root    3u  IPv4    14341      0t0  TCP *:22 (LISTEN)\r\nsshd       1805      root    4u  IPv6    14345      0t0  TCP *:22 (LISTEN)\r\nsshd       9832      root    3r  IPv4 15780961      0t0  TCP 192.168.1.1:5224->192.168.1.51:34749 (ESTABLISHED)\r\nsshd       9835       avz    3u  IPv4 15780961      0t0  TCP 192.168.1.1:5224->192.168.1.51:34749 (ESTABLISHED)\r\n[root@srv ~]# tcpkill -i eth1.2 host 192.168.1.51 and port 34749\r\ntcpkill: listening on eth1.2 [host 192.168.1.51 and port 34749]\r\nWrite failed: Broken pipe\r\n<\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043f\u043e SSH \u0441 \u0445\u043e\u0441\u0442\u0430 192.168.1.51 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 192.168.1.1 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 lsof \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0440\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (34749). \u0417\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u043b \u0435\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 tcpkill-\u0443 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0440\u0430\u0437\u0443 \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e. \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e tcpkill \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0445\u043e\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0441\u0435\u0442\u044c \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0440\u0446\u0438\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441\u0430\u043c\u044b\u0439 \u0438\u0437\u044f\u0449\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 <strong>gdb<\/strong>. \u041e\u043f\u044f\u0442\u044c \u043f\u043e\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043f\u043e SSH \u0441 192.168.1.51 \u043d\u0430 192.168.1.1 \u0438 \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u043e\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439 \u0446\u0438\u043a\u043b:<\/p>\n<pre lang=\"bash\">\r\n[user@avz ~]$ ssh 192.168.1.1\r\nLast login: Sat Aug 26 23:13:00 2017 from 192.168.1.51\r\n\r\n[user@srv ~]$ for i in {1..100} ; do date ; sleep 1 ; done\r\nSat Aug 26 23:25:35 EEST 2017\r\nSat Aug 26 23:25:36 EEST 2017\r\nSat Aug 26 23:25:37 EEST 2017\r\nSat Aug 26 23:25:38 EEST 2017\r\nSat Aug 26 23:25:39 EEST 2017\r\n<\/pre>\n<p>\u0412 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438:<\/p>\n<pre lang=\"bash\">\r\n[root@avz]# lsof -i -nP | grep ssh | grep 192.168.1.1:22\r\nssh       19543    avz    3u  IPv4 830283369      0t0  TCP 192.168.1.51:37527->192.168.1.1:22 (ESTABLISHED)\r\n<\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c PID (19543) \u0438 \u043d\u043e\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 (3, \u0441\u043c. 4-\u043e\u0435 \u043f\u043e\u043b\u0435). \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c gdb \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 close \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0435\u043c\u0443 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c 3:<\/p>\n<pre lang=\"bash\">\r\n[root@avz]# gdb -p 19543\r\n(gdb) call close(3)\r\n$1 = 0\r\n(gdb) quit\r\nA debugging session is active.\r\n\r\n        Inferior 1 [process 19543] will be detached.\r\n\r\nQuit anyway? (y or n) y\r\nDetaching from program: \/usr\/bin\/ssh, process 19543\r\n<\/pre>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0438 \u0432\u0438\u0434\u0438\u043c \u0442\u0430\u043c, \u0447\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e:<\/p>\n<pre lang=\"bash\">\r\nSat Aug 26 23:25:40 EEST 2017\r\nSat Aug 26 23:25:41 EEST 2017\r\nSat Aug 26 23:25:42 EEST 2017\r\nSat Aug 26 23:25:43 EEST 2017\r\nSat Aug 26 23:25:44 EEST 2017\r\nSat Aug 26 23:25:45 EEST 2017\r\nSat Aug 26 23:25:46 EEST 2017\r\nSat Aug 26 23:25:47 EEST 2017\r\nSat Aug 26 23:25:48 EEST 2017\r\nWrite failed: Bad file descriptor\r\n[user@avz ~]$\r\n<\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 TIME-WAIT-\u043e\u0432, \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \"\u0438\u0437 \u043f\u0443\u0448\u043a\u0438 \u043f\u043e \u0432\u043e\u0440\u043e\u0431\u044c\u044f\u043c\" &ndash; \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430\u043d\u0443\u0442\u044c \u0441\u0435\u0442\u044c (service network restart \u0438\u043b\u0438 \u0447\u0442\u043e \u0442\u0430\u043c \u0432 \u0412\u0430\u0448\u0435\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435).<\/p>\n<p>\u0410 \u0432\u043e\u0442 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f TIME-WAIT-\u043e\u0432 \u0438\u043b\u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043e\u043f\u0446\u0438\u0439 \u044f\u0434\u0440\u0430:<\/p>\n<pre lang=\"bash\">\r\nnet.ipv4.tcp_tw_recycle = 1\r\nnet.ipv4.tcp_tw_reuse = 1\r\n<\/pre>\n<p>\u041f\u0440\u0438 \u0447\u0435\u043c \u0434\u043b\u044f net.ipv4.tcp_tw_recycle \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043e\u043c\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0437\u0430 NAT-\u043e\u043c \u0438 \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0435\u0435 <a rel=\"nofollow\" href=\"https:\/\/vincent.bernat.ch\/en\/blog\/2014-tcp-time-wait-state-linux\">\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f<\/a>.<\/p>\n<p>\u0410 \u0432\u043e\u0442 \u0434\u043b\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 CLOSE_WAIT \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043e\u0442 \u044d\u0442\u0430 \u0448\u0442\u0443\u043a\u0430: https:\/\/github.com\/rghose\/kill-close-wait-connections \u0438\u043b\u0438 \u0441\u0432\u0435\u0436\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b ss \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 iproute:<\/p>\n<pre lang=\"bash\">\r\nss --tcp state CLOSE-WAIT '( dport = 22 or dst 1.1.1.1 )' --kill\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0431\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u0427\u0430\u0441\u0442\u043e \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e lsof \u0438\u043b\u0438 netstat \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0438 \u0447\u0442\u043e-\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0434\u0435\u043b\u0430\u044e\u0442 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, kill -9). \u041d\u043e \u0432\u043e\u0442 \u0434\u043b\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u0439\u0442\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e \u0438 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u043b \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0431\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435) \u0438\u043b\u0438 \u043f\u0440\u0438\u0431\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435\u043b\u044c\u0437\u044f, \u0443\u0436\u0435 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,21],"tags":[153],"class_list":["post-1641","post","type-post","status-publish","format-standard","hentry","category-nix","category-tips-and-tricks","tag-tcp"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/posts\/1641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/comments?post=1641"}],"version-history":[{"count":0,"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/posts\/1641\/revisions"}],"wp:attachment":[{"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/media?parent=1641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/categories?post=1641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avz.org.ua\/wp\/wp-json\/wp\/v2\/tags?post=1641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}