লিনাক্সে টিসিপি সংযোগ হত্যা হচ্ছে


49

আমার কাছে একটি অ্যাপ্লিকেশনে কিছু ডেড সংযোগ রয়েছে যা ক্লায়েন্ট মেশিন মারা গেলে ফাঁসি অবস্থায় রয়েছে।

->192.168.1.214:49029 (ESTABLISHED)

সার্ভারটি আরম্ভ না করেই লিনাক্স কমান্ড লাইন থেকে এই বিকল্পগুলি শেষ করার কোনও উপায় আছে কি?

অনুসন্ধানের পরে আমি সমাধানটি tcpkill হিসাবে পেয়েছি। তবে এটি আমার পক্ষে কাজ করবে না। এটি স্থায়ীভাবে যে আইপি ব্লক।


ssকমান্ডটি ব্যবহারের উত্তর অন্যদের তুলনায় অনেক সহজ এবং সাধারণ।
nealmcb

উত্তর:


35

মূলত: http://rtomaszewski.blogspot.sk/2012/11/how-to-forcibly-kill-established-tcp.html

সকেটকে "হত্যা" করতে আপনাকে অবশ্যই একটি টিসিপি রিসেট প্যাকেট পাঠাতে হবে। এটি প্রেরণ করতে (এবং অন্য পক্ষের দ্বারা গৃহীত হবে), আপনাকে অবশ্যই সত্যিকারের টিসিপি সিকোয়েন্স নম্বরটি জানতে হবে।

1) ইতিমধ্যে উল্লিখিত tcpkillপদ্ধতিটি এসইকিউ নম্বরটি নেটওয়ার্কে নিস্ক্রিয়ভাবে স্নিগ্ধ করে এবং এই সংযোগটির বৈধ প্যাকেটগুলির জন্য অপেক্ষা করে শিখবে। তারপরে এটি উভয় পক্ষের আরএসইটি প্যাকেটগুলি প্রেরণ করতে শেখা এসইকিউ নম্বর ব্যবহার করে। তবে যদি সংযোগটি নিষ্ক্রিয় / ফাঁসিযুক্ত এবং কোনও ডেটা প্রবাহিত না হয় তবে এটি কিছুই করবে না এবং চিরকাল অপেক্ষা করবে।

2) আরেকটি পদ্ধতিতে পার্ল স্ক্রিপ্ট killcx( সোর্সফোজের লিঙ্ক ) বলা হয়। এটি সক্রিয়ভাবে স্পুফড এসওয়াইএন প্যাকেটগুলি প্রেরণ করে এবং উত্তর থেকে এসইকিউ নম্বরটি শিখেছে। এটি তখন আরএসইটি প্যাকেটগুলি একইভাবে প্রেরণ করে tcpkill

বিকল্পভাবে কাছে (আপনি কি অর্জন করতে চান উপর ভিত্তি করে) ব্যবহার করা gdbএকটি প্রক্রিয়া এই সকেট / সংযোগ এবং ইস্যু মালিক সংযুক্ত করতে ডিবাগার close()তার পক্ষ থেকে প্রাপ্ত syscall - হিসাবে এই মধ্যে বিস্তারিত উত্তর

যদি আপনি কেবল ফাঁসিযুক্ত সংযোগগুলি (অন্যদিকে মারা গেছেন) নিয়ে ডিল করতে চান তবে বিভিন্ন সময়সীমা রয়েছে (উদাহরণস্বরূপ টিসিপি রক্ষণশীল), সিস্টেমে সঠিকভাবে কনফিগার করা থাকলে এই জাতীয় সংযোগগুলি স্বয়ংক্রিয়ভাবে বন্ধ করা উচিত।


যদি আমরা টিসিপি সকেট কেবল তার ফাইল বর্ণনাকারী (fd) দ্বারা বন্ধ করে দিই তবে এটি কাজ করবে?
এক্সিকিউট এফডি

লাইভ সংযোগের জন্য @ আলেকজান্ডারগনচি এটি প্যাকেটগুলিতে প্রতিক্রিয়া জানাতে প্রক্রিয়াটিকে আটকাবে, সুতরাং এটি সংযোগের সময়সীমা শেষ করতে পারে। নিষ্ক্রিয় সংযোগের জন্য কিছুই ঘটবে না। আমি নিশ্চিত না যে কার্নেল এফডি বন্ধ করার পরে নেটওয়ার্কে কিছু প্রেরণ করবে কিনা।
Marki555

আমি সিকোয়েন্স নম্বরটি শুকিয়েছি। তখন আমার কি করা উচিত?
ব্যবহারকারী3132194

18

tcpkillআপনার জন্য এটি করতে পারে। উবুন্টুতে এটি dsniffপ্যাকেজে রয়েছে।

কিছুটা এইরকম:

$ sudo tcpkill -i wlan0 host 192.168.1.214

(বা অন্য tcpdumpকোনটি কীভাবে হত্যা করতে হবে তার মত প্রকাশের মতো)।


4
এটি কেবল তখনই কাজ করে যদি সংযোগটি কোনও কিছু সংক্রমণ করে। এটি ফাঁসি / নিষ্ক্রিয় টিসিপি সংযোগগুলির জন্য কাজ করবে না (
বিশদটির

17

লিনাক্স কার্নেল> = 4.9 এ আপনি ssiproute2 থেকে কমান্ডটি কী সহ ব্যবহার করতে পারেন-K

ss -K dst 192.168.1.214 dport = 49029

কার্নেলটি CONFIG_INET_DIAG_DESTROYবিকল্প সক্ষম করার সাথে সংকলিত করতে হবে ।


1
লিনাক্সের জন্য, এটি যদি আপনার নিষ্ক্রিয় সংযোগ থাকে ( tcpkillকাজ করতে না পারে) তবে এটি সত্যিই সেরা উপায় and যাইহোক, আমি স্বীকার করব যে আমি পরিদর্শন করেছি নি killcxতবে মনে হচ্ছে সুরক্ষা সফ্টওয়্যার অনেকগুলি এটিকে কাজ করা থেকে বিরত রাখবে যদি না আপনি এই আইপ্যাটিবলগুলিকে এই স্পুফড প্যাকেটগুলির মাধ্যমে অনুমতি না দিয়ে থাকেন unless
শেঠ রবার্টসন

ধন্যবাদ! sudo ss -K ....উবুন্টু বায়োনিক 18.04 এলটিএসে একটি কবজির মতো কাজ করেছেন । আমার একটি tmuxপ্রক্রিয়া ছিল যা রিমোটের কারণে একটি ছোট পর্দার আকারে আটকে গিয়েছিল তবে মরে গেছে, কিন্তু সময়সীমার সংযোগের কারণে নয়। সব ঠিক!
nealmcb

6

কর - মূল হিসাবে netstat -tunp|grep 49029। আউটপুটের শেষ কলামে আপনাকে সেই সংযোগের জন্য দায়ী প্রক্রিয়ার পিআইডি এবং প্রোগ্রামের নামটি দেখাতে হবে।

আপনি যদি ভাগ্যবান হন তবে কেবল সেই সংযোগের জন্য একটি একক প্রক্রিয়া রয়েছে।

আপনি যদি দুর্ভাগ্য হন তবে এটি আরও জটিল হয়ে পড়ে (পিআইডি কেবলমাত্র একটি সংযোগের চেয়ে বেশি দায়বদ্ধ)। এটি কোন ধরণের পরিষেবা?

আপনি কেন এই অধিবেশনটি শেষ করতে চান?


8
আমি এই প্রক্রিয়াটি মারতে পারি না। এটি গিয়ারম্যান সার্ভার। আমি কেবল সংযোগটি বন্ধ করতে চাই।
বিবেক গোয়েল

0

tcpkillএকটি মৃত (ফাঁসি) সংযোগ বন্ধ করতে পারে না। এটি ভিত্তিক libpcap, এটি প্রেরিত FINপ্যাকেটে একটি প্যাকেট তৈরি করে । যদি সংযোগটি ইতিমধ্যে মারা গেছে তবে এটি সঠিক ক্রম সংখ্যাটি পেতে পারে না।

একমাত্র উপায় প্রক্রিয়াটি বন্ধ করা, তাই সর্বত্র তৈরি করা যায়নি স্পফ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.