Iptables ফায়ারওয়াল বিধিগুলি ব্যবহার করার সময়, সমস্ত অনুমোদিত বন্দরগুলিতে কেন নতুন রাজ্যকে দৃ ?়তাযুক্ত করবেন?


23

আমি প্রায়শই iptablesগুলি সমস্ত পেকেটগুলিকে সম্পর্কিত সংযোগগুলিতে এবং নির্দিষ্ট পরিষেবা পোর্টগুলিকে নতুন সংযোগগুলিতে অনুমতি দেওয়ার জন্য কনফিগার করা দেখতে পাই।

নতুনকে জানার কারণ কী? যদি কোনও সংযোগটি নতুন না হয় তবে এটি আমার কাছে সম্পর্কিত বলে মনে হয়, তাই নির্দিষ্ট বন্দর বিধিটি কার্যকর করে না। সুতরাং কেন কেবল প্রোটোকল এবং পোর্ট নম্বর নয়, কেবল নতুন দিয়ে পরিষেবা বন্দরগুলি সংজ্ঞায়িত করতে হবে?

উত্তর:


21

নেটফিল্টার ফায়ারওয়াল (iptables) এর নিয়মগুলি ধারাবাহিকভাবে পরীক্ষা করা হয় এবং প্যাকেটের ভাগ্য (ACCEPT, DROP, REJECT ইত্যাদি) প্রথম ম্যাচের ভিত্তিতে নির্ধারিত হয়।

ফায়ারওয়াল স্টেটফুল এবং প্রথম নিয়ম করে সাধারণ -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTআপনার বৈধ ট্র্যাফিকের সর্বাধিক সংখ্যক বৈধ ট্র্যাফিক কেবল সেই একক নিয়ম পাস করার পরে গৃহীত হয়। এই ট্র্যাফিকের অন্য কোনও নিয়মকে অতিক্রম করার দরকার নেই।

আপনার নিয়ম বেসের আকারের উপর নির্ভর করে যা আপনার ফায়ারওয়াল পারফরম্যান্সে একটি উল্লেখযোগ্য পার্থক্য বোঝাতে পারে।

ফায়ারওয়ালকে এখন যা যা ট্র্যাফিক যাচাই করা দরকার তা হ'ল স্পষ্টতই নতুন সংযোগগুলি।

অর্থ একটি পাবলিক ওয়েব সার্ভারের জন্য তাদের ওয়ার্কস্টেশনগুলি থেকে মুষ্টিমেয় ওয়েবমাস্টারদের অ্যাক্সেসের সাথে ফায়ারওয়ালের তুলনা করুন:

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -m iprange --src-range 10.9.8.7-10.9.8.10 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

মোটামুটিভাবে 99% বৈধ প্যাকেটগুলি প্রতিষ্ঠিত সংযোগগুলির অন্তর্ভুক্ত হবে, কেবল প্রথম নিয়মে আঘাত করে। এই নিয়মের সাথে মেলে না এমন প্যাকেটগুলির মধ্যে, বেশিরভাগটি আপনার ওয়েবসাইটে নতুন সংযোগ হওয়া উচিত, মাল্টিপোর্টপোর্ট মডিউলটি একটি নিয়মে এইচটিটিপি বা এইচটিটিপিএস উভয়কেই অ্যাক্সেস দিতে পারে। ওয়েবমাস্টাররা ssh এবং sftp ব্যবহার করে স্থির ঠিকানা সহ বেশ কয়েকটি ওয়ার্কস্টেশন থেকে লগ ইন করে এবং সমস্ত কিছু প্রত্যাখ্যান করা হয়।

একটি ফায়ারওয়াল যেখানে নিয়মগুলি টিসিপি বন্দর দ্বারা লজিক্যাল অর্ডার করা হয়েছে:

-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.7 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.8 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.9 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.10 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 443 -j ACCEPT

এখানে প্রতিটি আপনার HTTP- র ওয়েবসার্ভার থেকে প্যাকেট 5 নিয়ম বিরুদ্ধে চেক করা আগে অ্যাক্সেস দেওয়া হয় জানতে হবে। এবং এমন একটি সার্ভারে চলমান আরও পরিষেবাগুলির সাথে যা 50 টি নিয়ম বা আরও অনেক কিছু হয়ে যেতে পারে যখন আপনি উদাহরণস্বরূপ ব্যর্থ 2 বা অনুরূপ পণ্য ব্যবহার করবেন।


1
আপনি একটি " প্রথম ম্যাচের ভিত্তিতে অ্যাক্সেসের অনুমতি দেওয়া হয়েছে " ব্যতীত একটি দুর্দান্ত উত্তর (আমার কাছ থেকে +1!) । যদি প্রথম ম্যাচটি কোনও ড্রপ বা প্রত্যাখ্যান হয় তবে এটি অ্যাক্সেসের অনুমতি দেবে না; যদি এটি একটি এলওজি হয় তবে আপনাকে পরবর্তী ম্যাচটি সন্ধান করতে হবে; এবং যদি কাস্টম চেইনগুলি জড়িত হয় তবে জিনিসগুলি বেশ ব্যারোক হতে পারে। আমি বরং বলব যে " প্যাকেটের ভাগ্য প্রথম-নিষ্পত্তি-ম্যাচের ভিত্তিতে নির্ধারিত হয় "।
ম্যাডহ্যাটার

5
related/establishedলাইনটি উপস্থিত রয়েছে তবে পরবর্তী বিধিগুলি দৃ not়ভাবে প্রমাণ করে না এমন ক্ষেত্রে আপনি কি প্রতিফলিত করতে পারেন NEW?
ড্যানিয়েল উইড্রিক

13

NEW মানে প্যাকেটটি একটি নতুন সংযোগ শুরু করেছে।

এটি ip_conntrack_*আপনার ফায়ারওয়ালকে রাষ্ট্রীয় করে তোলে এমন কার্নেল মডিউলগুলি পরিচালনা করে । রাষ্ট্রীয় ফায়ারওয়াল ট্র্যাফিক স্ট্রিম দেখতে পারে।

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

একটি ভাল উদাহরণ এফটিপি: সক্রিয় এফটিপি নিয়ন্ত্রণ চ্যানেলের জন্য পোর্ট 21 ব্যবহার করে তবে ডেটা চ্যানেলের জন্য পোর্ট 20 ব্যবহার করে। রাষ্ট্রীয় ফায়ারওয়ালের ক্ষেত্রে, আপনাকে বিশদভাবে পোর্ট 20 খোলার দরকার নেই কারণ এটি 21 বন্দরটিতে পূর্ববর্তী নতুন প্রতিষ্ঠিত সংযোগের সাথে সম্পর্কিত।

iptablesম্যান পেজের একটি নির্যাস এখানে :

নতুন - এর অর্থ হ'ল প্যাকেটটি একটি নতুন সংযোগ শুরু করেছে, বা অন্যথায় এমন সংযোগের সাথে যুক্ত যা উভয় দিক থেকে প্যাকেট দেখেনি।

ইস্টাব্লিশড - অর্থ প্যাকেট এমন কোনও সংযোগের সাথে সম্পর্কিত যা উভয় দিকের প্যাকেট দেখেছিল।

সম্পর্কিত - এর অর্থ হল প্যাকেটটি একটি নতুন সংযোগ শুরু করছে, তবে এটি একটি বিদ্যমান সংযোগের সাথে সম্পর্কিত, যেমন একটি এফটিপি ডেটা স্থানান্তর, বা আইসিএমপি ত্রুটি।


1
21 কীভাবে পোর্ট 21 21 বন্দরটির সাথে পোর্ট 'সংযুক্ত' করবে? একটি খোলা আইপি সংযোগ অন্য বন্দরে স্থানান্তরিত করা যেতে পারে?
ড্রোনাস

nf_conntrack_ftp.ko
mateusza

7
-A INPUT -m tcp -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -DROP

উপরের রুলসেটটি প্যাকেটগুলির INVALIDমাধ্যমে একটি রাজ্য টিসিপি পোর্ট 22 এ দেবেACCEPT

অবৈধ : পূর্ববর্তী কোনও রাজ্য যদি প্যাকেটটি প্রয়োগ না করে তবে ইনভ্যালিডে থাকে। এটি বিভিন্ন ধরণের স্টিলথ নেটওয়ার্ক প্রোবগুলির কারণে ঘটতে পারে বা এর অর্থ এটি হতে পারে যে আপনি CONNTRACK এন্ট্রির বাইরে চলেছেন (যা আপনাকে আপনার লগগুলিতেও দেখতে হবে)। অথবা এটি পুরোপুরি সৌম্য হতে পারে।

/unix/57423/how-to-understand-why-the-packet-was-considered-invalid-by-the-iptables


স্টেট জোর দেওয়া NEWনিশ্চিত করে যে ইনভালিড প্যাকেটগুলি ভুলভাবে অ্যাকসেটেড না হয়।

এবং এর অর্থ পরিষ্কার করতে:

  • নতুন : এটি একটি নতুন সংযোগ
  • প্রতিষ্ঠিত : এটি একটি বর্তমান সংযোগের সাথে জড়িত একটি প্যাকেট
  • সম্পর্কিত : এটি একটি নতুন সংযোগ, তবে একটি বিদ্যমান সংযোগ দ্বারা পূর্বাভাস দেওয়া হয়েছে
  • ইনভ্যালিড : উপরের কোনওটিই প্রয়োগ হয় না।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.