Iptables ব্যবহার করার সময় DROP বনাম প্রত্যাখ্যান করুন


উত্তর:


79

একটি সাধারণ নিয়ম হিসাবে, যখন আপনি অপর প্রান্তটি বন্দরটি অ্যাক্সেসযোগ্য তা জানতে চাইলে REJECT ব্যবহার করুন 'হোস্টগুলিতে সংযোগের জন্য DROP ব্যবহার করুন আপনি লোকেরা দেখতে চান না।

সাধারণত, আপনার ল্যানের অভ্যন্তরের সংযোগের জন্য সমস্ত নিয়মগুলি বাতিল হওয়া উচিত। ইন্টারনেটের জন্য, নির্দিষ্ট সার্ভারগুলিতে পরিচয় বাদে ইন্টারনেট থেকে সংযোগগুলি সাধারণত ড্রপড হয়।

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

এসএমটিপি পরিষেবা সরবরাহকারী কোনও ঠিকানায় পরিচয়টি পাস বা বাতিল করা উচিত। যাইহোক, এসএমটিপি সার্ভস দ্বারা আইডেন্ট লুক-আপ ব্যবহারের বাইরে চলে গেছে। চ্যাট প্রোটোকল রয়েছে যা একটি ওয়ার্কিং আইডেন্টিটি পরিষেবাতে নির্ভর করে।

সম্পাদনা: ডিআআরপি বিধি ব্যবহার করার সময়: - ইউডিপি প্যাকেটগুলি বাদ দেওয়া হবে এবং আচরণটি কোনও পরিষেবা ছাড়াই নিরপেক্ষভাবে বন্দরের সাথে সংযোগ স্থাপনের সমান হবে। - টিসিপি প্যাকেটগুলি একটি এসকে / আরএসটি ফিরিয়ে দেবে যা একই প্রতিক্রিয়া যা কোনও খোলার বন্দর এতে কোনও পরিষেবা না দিয়ে প্রতিক্রিয়া জানাবে। কিছু রাউটার প্রতিক্রিয়া জানাবে এবং সার্ভারগুলি ডাউন হয়ে যা তাদের পক্ষে ACK / RST করবে।

REJECT নিয়মগুলি ব্যবহার করার সময় একটি ICMP প্যাকেট প্রেরণ করা হয় যা বন্দরটি অনুপলব্ধ।


5
এটি সত্য নয়। নিয়মটি "DROP" বলার পরেও সিস্টেমটি আগত প্যাকেটগুলিকে টিসিপি এসওয়াইএন / এসিএন দিয়ে জবাব দেবে যেন এটি খোলা ছিল। সত্যই কোনও প্যাকেট ফেলে দেওয়ার জন্য, সিস্টেমকে একটি টিসিপি আরএসটি / এসি সঙ্গে জবাব দেওয়া দরকার - যার জন্য কোনও ফায়ারওয়াল নিয়ম নেই। যেমন, সর্বোত্তম ফায়ারওয়ালিং সেটআপ হ'ল কেবলমাত্র নির্বাচিত পোর্টগুলি ফরোয়ার্ড করা হয়। আপনার ডিআআরপি বিধি আপনার ফায়ারওয়ালের বিজ্ঞাপন দেবে এবং পোর্ট-স্ক্যানাররা জানতে পারবে যে আপনি কোনও কিছু ফায়ারওয়াল করছেন এবং আপনার ফায়ারওয়ালটি নীচে নেওয়ার আশায় আপনাকে হাতুড়ি দিয়ে রাখছেন।
ডেজল্ফ

2
আমার বক্তব্যটি হ'ল আপনি বাইরে ফায়ারওয়াল করছেন কিনা তা বাইরে থেকে সনাক্ত করা যায় যে আপনি প্রথমে কোনও সার্ভিস চালাচ্ছেন না তার চেয়ে যখন আপনি ড্রপ করেন তখন আপনার টিসিপি স্ট্যাকটি আলাদা আচরণ করে!
ডেজল্ফ

2
পার্থক্যটির মূলধন তৈরি করে এবং ফলস্বরূপ আপনার বন্দরগুলি পর্যবেক্ষণ করে যে বোটনেটস রয়েছে তা পরিবর্তন করে না।
ডেজল্ফ

1
আপনি যাই করুন না কেন, ধারাবাহিক হন। যদি আক্রমণকারী কোনও অব্যবহৃত পোর্ট নম্বর নিয়ে যায় এবং সংযোগ দেওয়ার চেষ্টা করে তবে তার একই প্রতিক্রিয়া পাওয়া উচিত যেন সে আপনাকে বেছে নিয়েছে আপনি উদ্দেশ্যমূলকভাবে অবরুদ্ধ করছেন। ভিন্ন প্রতিক্রিয়া জানানো তাকে বলে যে সেখানে কিছু আছে। উদাহরণস্বরূপ, তিনি সেই পূর্বান্নবারটি ব্যবহার করতে পারেন যা আপনি কোন ডাটাবেস সার্ভারটি ব্যবহার করছেন তা নির্ধারণের জন্য তিনি সেই সার্ভারে এসকিউএল ইঞ্জেকশনটি তৈরি করতে পারবেন কিনা তা আলাদা প্রতিক্রিয়া দেয় ...
ব্যবহারকারীর13134

5
@ ডেগল্ফ আপনি কোথায় তথ্য পেয়ে যাচ্ছেন যে ড্রপ একটি প্রতিক্রিয়া পাঠায়? এটি বড় খবর এবং আমি লক্ষ্য রেখেছি এবং যা বলেছি তার সবকিছুর পাল্টে চলে। ডকুমেন্টেশনের কোনও লিঙ্ক রয়েছে যা এই আচরণটি বর্ণনা করে?
স্কোর_উন্ডারে

27

পার্থক্যটি হ'ল REJECT টার্গেট উত্সটিতে একটি প্রত্যাখাত প্রতিক্রিয়া প্রেরণ করে, যখন DROP লক্ষ্য কিছুই পাঠায় না।

এটি আইডেন্টিটি সার্ভিসের জন্য যেমন দরকারী হতে পারে। আপনি যদি REJECT ব্যবহার করেন তবে ক্লায়েন্টদের সময়সীমা অপেক্ষা করার দরকার নেই।

এটি সম্পর্কে আরও: http://www.linuxtopia.org/Linux_Firewall_iptables/x4550.html


2
DROP লক্ষ্য কিছুই প্রেরণ করে না। গৃহীত উত্তরের উপর আমার মন্তব্য পরীক্ষা করুন এবং আপনি যদি বিবরণে আগ্রহী হন তবে বিষয়টি নিজেই গবেষণা করুন!
ডেজল্ফ

8

সাধারণত, আপনি আক্রমণকারীদের থেকে নির্দিষ্ট বন্দরে প্রোব অগ্রাহ্য করতে চান , যার অর্থ আপনি 'সংযোগ প্রত্যাখ্যান' ফেরত পাঠাতে চান না mean 'সংযোগ প্রত্যাখ্যান' এর অর্থ: 'এখানে একটি সার্ভার রয়েছে', এবং সম্ভবত আরও তথ্য দেয়, যখন প্যাকেটটি ফেলে দেওয়া সফ্টওয়্যার সংস্করণ, সম্ভাব্য দুর্বলতা বা এমনকি কোনও সার্ভার আপনাকে আইপি শুনছে কিনা তা সম্পর্কে কোনও ধারণা দেয় না।

উপরে প্রত্যাখ্যানের পরিবর্তে DROP ব্যবহারের অন্যতম প্রধান কারণ।


6
Iptables নিয়ম ব্যতীত, একটি বদ্ধ বন্দর REJECT এ ডিফল্ট। আপনি যদি প্রতিটি বন্দর ড্রপ করেন তবে এটি একটি দুর্দান্ত বিকল্প (আপনার হোস্টটি নীচে উপস্থিত হবে) তবে আপনি যদি কেবলমাত্র নির্দিষ্ট বন্দরগুলি ড্রপ করেন তবে আপনি তাদেরকে প্রত্যাখ্যানের চেয়ে আরও বেশি তথ্য দিচ্ছেন। যদি কেউ এনএম্যাপের মতো কম্বল তদন্ত ব্যবহার করে, নির্দিষ্ট পোর্টগুলি যে প্যাকেটগুলি ফেলে দেয় সেগুলি "ফিল্টারড" হিসাবে উপস্থিত হবে, যার অর্থ তারা জানে যে আপনি সেখানে লুকিয়ে আছেন এমন একটি পরিষেবা রয়েছে।
Raptor007

7

আমি এখানে প্রচুর দ্বন্দ্বপূর্ণ উত্তর দেখতে পাচ্ছি এবং দেওয়া হয়েছে সঠিক কীওয়ার্ড সহ Google এ এটি প্রথম নিবন্ধ; এখানে সঠিক ব্যাখ্যা।
এটি সহজ:

প্যাকেটটি দিয়ে DROP কিছুই করে না। এটি কোনও হোস্টের কাছে ফরোয়ার্ড হয় না, উত্তর পাওয়া যায় না। আইপেটেবলের ম্যানপেজটি বলে যে এটি প্যাকেটটি মেঝেতে ফেলে দেয়, অর্থাত প্যাকেটটি দিয়ে এটি কিছুই করে না।

প্রত্যাখ্যান ড্রপের সাথে পৃথক হয় যে এটি কোনও প্যাকেট ফেরত পাঠায়, তবে উত্তরটি হ'ল কোনও সার্ভার আইপি-তে অবস্থিত, তবে শ্রোতা অবস্থায় পোর্ট নেই। আইপিটাবলগুলি টিসিপি বা ইউডিপির সাথে আইসিএমপি গন্তব্য পোর্টটি না পারা যায় এমন ক্ষেত্রে একটি আরএসটি / এসিকে প্রেরণ করবে।


2
আমার কাছ থেকে +1, কিন্তু উত্তরগুলি সত্যই দ্বিমত করে না। তারা সকলেই একমত, যতদূর আমি দেখতে পাচ্ছি, ডেজল্ফ ব্যতীত - কে ভুল।
ম্যাডহ্যাটার

ঠিক আছে, আপনার জন্য এখন এখানে একটি সামান্য কৌশল: একটি "এনএম্যাপ লোকালহোস্ট" করুন। এখন "খোলা" নয় এমন কোনও পোর্ট বেছে নিন ... এবং একটি নিয়ম যুক্ত করুন যা "কিছুই করে না" উদাহরণস্বরূপ: "iptables -I INPUT -p tcp --dport 888 -j DROP"। এখন আবার "nmap লোকালহোস্ট"। তুমি কি দেখতে পাও? ...
ডেজল্ফ

4

আপনি যদি আপনার মেশিনের অস্তিত্ব পুরোপুরি গোপন করার চেষ্টা করেন -j DROPতবে উপযুক্ত is উদাহরণস্বরূপ, আপনি এটি একটি কালো তালিকাভুক্তি প্রয়োগ করতে ব্যবহার করতে পারেন।

আপনি যদি কোনও বন্দরটি উন্মুক্ত রয়েছে এই বিষয়টি গোপন করার চেষ্টা করছেন, বন্দরটি খোলা না থাকলে আপনার যে আচরণটি ঘটেছিল তা নকল করা উচিত:

  • বিভিন্ন TCP: -p tcp -j REJECT --reject-with tcp-reset
  • এর ফলে UDP: -p udp -j REJECT --reject-with icmp-port-unreachable

যদি কোনও পোর্ট স্ক্যানার দেখতে পায় যে বেশিরভাগ বন্দর প্যাকেটগুলি ফেলে দিচ্ছে যখন বেশিরভাগ সেগুলি প্রত্যাখ্যান করে, এটি ধরে নিতে পারে যে বাদ দেওয়া প্যাকেটগুলি খোলা তবে লুকানো রয়েছে এমন পোর্টগুলিতে রয়েছে।


আপনি যদি কয়েকটি বন্দর খোলা করেন (যেমন 22, 25, 53, 80, 443) এবং তারপরে অন্য সমস্ত কিছু ড্রপ করেন? এখন আমার মাইএসকিউএল, পোস্টগ্রেএসকিউএল, এসকিউলাইট, বা ক্যাসান্দ্রা চলছে কিনা ... স্ক্যানারটি বলতে পারছে না, তাই না?
অ্যালেক্সিস উইলক

@ অ্যালেক্সিসওয়িল্ক সেই ক্ষেত্রে, বন্দর স্ক্যানারটি দিচ্ছেন কেবলমাত্র অতিরিক্ত তথ্য হ'ল আপনার ডিফল্ট ডিআরওপি নীতি সহ একরকম ফায়ারওয়াল রয়েছে।
Raptor007

0

প্রচুর সঠিক উত্তর সত্ত্বেও, কেবল আমার দুটি সেন্ট:

নিষেধাজ্ঞার সিস্টেম (ফায়ারওয়াল, আইডিএস, ইত্যাদি) সম্পর্কিত বিধি সম্পর্কিত বিষয় সম্পর্কে আমার কাছে এখানে একটি সংক্ষিপ্ত পিসি এফডাব্লু.আইডিএস-ড্রপ-বনাম-প্রত্যাখ্যান

কিছুদিন:

  • DROP সমস্ত বন্দর নিষিদ্ধ করা হলে, পুনরুদ্ধারকারী অনুপ্রবেশকারীদের জন্য ব্যবহার করা যেতে পারে (সুতরাং দেখে মনে হচ্ছে যে সার্ভারটি অনুপ্রবেশকারীদের দিকে ডাউন আছে)
  • REJECT --reject-with tcp-reset মাল্টি-পোর্ট নিষিদ্ধের জন্য সেরা পছন্দ, কারণ এটি বাস্তব বন্ধ বন্দর হিসাবে আচরণ করে বলে মনে হচ্ছে
  • যদি কিছু বন্দর উত্তর দিচ্ছে (অনুপ্রবেশকারী জানে যে হোস্ট বেঁচে আছে), DROPএবং REJECT(ছাড়া tcp-reset) অনুপ্রবেশকারীকে একটি "সিগন্যাল" দেবে যে কোনও কিছু অবরুদ্ধ করছে (যাতে এটি প্রয়োজনীয় তথ্য সরবরাহের আশায় "আক্রমণ" চালিয়ে যেতে উত্সাহিত করতে পারে) কিছু ক্ষেত্রে)

-5

হ্যাঁ, DROP ব্যবহার করা অর্থহীন। প্রত্যাখ্যান করুন।

এমনকি যখন নিয়মটি "DROP" বলছে তখনও সিস্টেমটি আগত এসওয়াইএনকে একটি টিসিপি আরএসটি / এসকে দিয়ে জবাব দেয় - এটি কোনও পরিষেবা চালু না থাকা পোর্টগুলির জন্য ডিফল্ট আচরণ। (tcpdump এট এটি লগ করে না))

কোনও পরিষেবা চলমান থাকলে, এসওয়াইএন টিসিপি এসওয়াইএন / এসিএকের সাথে দেখা হয়।

যেহেতু ডিআরওপি কোনও টিসিপি এসওয়াইএন / এসিএকে দিয়ে স্বাভাবিক হিসাবে সাড়া দেয় না, তবে পরিবর্তে আরএসটি / এসিসি দিয়ে, আপনার ড্রপ বিধিটি আপনার ফায়ারওয়ালটির বিজ্ঞাপন দেবে এবং পোর্ট-স্ক্যানাররা জানতে পারবে যে আপনি কোনও ফায়ারওয়াল করছেন এবং আশায় আপনাকে হাতুড়ি দিয়ে রাখতে পারে might আপনার ফায়ারওয়াল নিচে ধরার।

এটি এখন nmap উদাহরণস্বরূপ "বন্ধ" পরিবর্তে "ফিল্টারড" প্রতিবেদন করতে পারে:

$ nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
53/tcp   open  domain
80/tcp   open  http

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

$ iptables -I INPUT -p tcp --dport 1111 -j DROP
$ nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
53/tcp   open  domain
80/tcp   open  http
1111/tcp filtered lmsocialserver

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

$ iptables -D INPUT 1

যেমন, কেবলমাত্র "অদৃশ্য" ফায়ারওয়ালিং সেটআপটি হ'ল যেখানে কোনও ডেডিকেটেড ডিভাইস আপনার ডিভাইসগুলির মধ্যে বসে এবং কেবল বেছে বেছে পোর্টগুলি ফরওয়ার্ড করে।

আপনি যদি সত্যিই বেসিক স্ক্যানারগুলির সাথে ঝামেলা করতে চান, আপনি টিসিপিটি সংযোগগুলি TARPIT করতে পারেন, এটি টিসিপি উইন্ডো 0 তে সেট করে যাতে সংযোগটি খোলার পরে কোনও তথ্য স্থানান্তরিত হতে না পারে, সংযোগটি বন্ধ করার অনুরোধগুলি উপেক্ষা করে, যার অর্থ স্ক্যানারকে অপেক্ষা করতে হবে সংযোগের মেয়াদ শেষ হওয়ার জন্য, যদি এটি নিশ্চিত হতে চায়। তবে আক্রমণকারীটির পক্ষে এটি সনাক্ত করা এবং তার সময়সীমাটি খুব সংক্ষিপ্ত করে তোলা তুচ্ছ।

সমস্ত বিষয় বিবেচিত, আপনি সম্ভবত কেবল প্রত্যাখ্যান - বা আপনার সার্ভার এবং ইন্টারনেটের মধ্যে একটি ডেডিকেটেড পোর্ট ফরওয়ার্ডিং ডিভাইসটি ব্যবহার করে সেরা best

অথবা আপনার ইন্টারনেট-মুখী মেশিনগুলিতে কেবল পরিষেবা চালানো যা ফায়ারওয়ালিংয়ের প্রয়োজন হয় না।

সাধারণত ওয়েব সার্ভারের জন্য REJECT সবচেয়ে ভাল, কারণ যে কোনও পরিষেবা এটির অ্যাক্সেস করার চেষ্টা করছে (সম্ভবত আরও প্রায়ই নয়, আপনি) দ্রুত প্রতিক্রিয়া পাবেন এবং ব্যবহারকারী বা অন্যান্য পরিষেবাদি কোনও নেটওয়ার্ক বিভ্রাট রয়েছে কিনা তা ভেবে অবাক হয়ে অপেক্ষা করা হবে না।


5
এই উত্তরটি ভুল। এটি টিসিপিডম্পের সাহায্যে সহজেই দেখানো যেতে পারে যে DROP নিয়মের ফলে সিস্টেম কোনও উত্তর না পাঠায় - যেমনটি আশা করা যায় expect এবং আপনার বক্তব্য "সত্যিকার অর্থে একটি প্যাকেট ফেলে দেওয়ার জন্য, সিস্টেমটিকে একটি টিসিপি আরএসটি / এসকে দিয়ে জবাব দেওয়া দরকার" কোনও উত্তর দেওয়া স্পষ্টতই "সত্যিকার অর্থে একটি প্যাকেট বাদ দেওয়া নয়" এর অর্থ নয়। আপনি যদি কোনও প্যাকেট "সত্যই ফেলে" দেন তবে আপনি কেবল উত্তর দিবেন না এবং এটি DROP নিয়মের প্রভাব হিসাবে প্রদর্শিত হবে।
জুলিয়ান হোল্ট

3
আপনি কি অভিযোগের জন্য একটি উত্স সরবরাহ করতে পারেন যা DROPএকটি জারি করবে SYN/ACK? আমি আমার মেশিনে এটি কখনও দেখিনি।
motobói

2
@ ড্যাজল্ফ আপনার নিবন্ধটি বলেছে "ড্রপ (ওরফে ডেনি, ব্ল্যাকহোল) কোনও প্যাকেট পাস হতে নিষেধ করুন। কোনও প্রতিক্রিয়া পাঠান না।"
জ্যান্ট

এটি সাধারণ প্রতিক্রিয়া প্রেরণ করে না, তবে এটি নির্বিশেষে এটি প্রেরণ করে।
ডাজেলফ

3
আপনি যে দস্তাবেজটি এর প্রতি সংযোগ আছে বলে " ফেলে দাও ... পাঠান কোন প্রতিক্রিয়া ", এবং না, যতটা আমি দেখতে পারেন, আপনার দাবি যে অবলম্বন পাওয়া DROPএকটি ফেরৎ SYN/ACK। আমিও, কোনও সংস্করণের অধীনে এই আচরণটি দেখিনি iptables। আপনার কাছে যদি এমন কোনও উত্স থাকে যা আপনার দাবিকে সমর্থন করে তবে এটি দেখার পক্ষে এটি সবচেয়ে কার্যকর হবে; অবশ্যই, আমি সবেমাত্র প্যাকেট ডাম্পগুলি করেছি আপনার দাবি সমর্থন করে না।
ম্যাডহ্যাটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.