আমি কেন আমার iptables OUTPUT চেইনে REJECT নীতিটি ব্যবহার করতে পারি না?


11

আমার বর্তমানে আমার OUTPUT চেইনটি DROP এ সেট আছে। আমি এটিকে প্রত্যাখাত করে রাখতে চাই, যাতে আমার ধারণা থাকে যে এটি আমার ফায়ারওয়াল আমাকে যে কোনও পরিষেবা অ্যাক্সেস করার চেষ্টা করছে তার সমস্যা না হয়ে কোথাও পৌঁছানো থেকে বিরত রাখছে (সময়ক্ষণের পরিবর্তে অবিলম্বে প্রত্যাখ্যান)। যাইহোক, iptables এটি যত্ন করে বলে মনে হয় না। আমি যদি আমার সংরক্ষিত নিয়ম ফাইলটিকে ম্যানুয়ালি সম্পাদনা করি এবং পুনরুদ্ধার করার চেষ্টা করি তবে আমি পেয়েছি iptables-restore v1.4.15: Can't set policy 'REJECT' on 'OUTPUT' line 22: Bad policy nameএবং এটি নিয়মগুলি লোড করতে অস্বীকার করে। যদি আমি এটি ম্যানুয়ালি সেট করার চেষ্টা করি ( iptables -P OUTPUT REJECT), আমি পাই iptables: Bad policy name. Run 'dmesg' for more information.তবে ডেমেসেগের কোনও আউটপুট নেই।

আমি নিশ্চিত করেছি যে উপযুক্ত নিয়মটি কার্নেলের মধ্যে সংকলিত হয়েছে এবং এটি লোড হয়েছে তা নিশ্চিত করার জন্য আমি পুনরায় বুট করেছি:

# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=y
***
CONFIG_IP_NF_TARGET_REJECT=y
***
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y

(প্রযোজ্য বিধিটি হাইলাইট করার জন্য তারকাচিহ্নগুলি যুক্ত করা হয়েছে)

আমি যে যা কিছু খুঁজে পাচ্ছি তা উল্লেখ করে যে প্রত্যাখ্যান একটি বৈধ নীতি / লক্ষ্য (সাধারণভাবে) তবে আমি এমন কিছু পাই না যা বলে যে এটি ইনপুট, ফরওয়ার্ড বা আউটপুট চেইনের জন্য বৈধ নয়। আমার গুগল-ফু সাহায্য করছে না। আমি জেন্টুতে আছি, যদি তাতে কোনও পার্থক্য হয়। এখানে কারও কি অন্তর্দৃষ্টি আছে?


আপনি কি iptablesপ্রশ্নে বিধি (গুলি) দেখাতে পারবেন ?
বাহামত

উত্তর:


15

REJECTএকটি লক্ষ্য এক্সটেনশন , যখন একটি চেইন পলিসি লক্ষ্য হতে হবে । ম্যান পেজটি বলে যে (যদিও এটি সত্যই পরিষ্কার নয়) তবে এটি যা বলে তাতে কিছু ফ্ল্যাট ভুল।

নীতিটি কেবল অন্তর্নির্মিত চেইনগুলিতে ACCEPTবা থাকতে পারে DROP। আপনি যদি পূর্বের নিয়মের সাথে মেলে না এমন সমস্ত প্যাকেটগুলি প্রত্যাখ্যান করার প্রভাবটি চান তবে কেবল শেষ বিধিটি সমস্ত কিছুর সাথে মেলে এবং REJECTলক্ষ্য এক্সটেনশন সহ একটি বিধি যুক্ত করেছে তা নিশ্চিত করুন । অন্য কথায়, সমস্ত প্রাসঙ্গিক বিধি যুক্ত করার পরে, করুন iptables -t filter -A OUTPUT -j REJECT

দেখুন থ্রেড "কি সম্ভব শৃঙ্খল নীতি হল" আরো বিস্তারিত জানার জন্য Netfilter তালিকায়।


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

1
পুরো ম্যান পৃষ্ঠাটি পড়া, এটি স্পষ্ট যে REJECT একটি টার্গেট এক্সটেনশন, তবে ম্যান পৃষ্ঠাটি খুব দীর্ঘ তাই "TL; DR" প্রয়োগ করার ঝোঁক tend এটি এও বোঝায় যে DROP, ACCEPT এবং QUEUE বৈধ নীতি লক্ষ্য; বর্তমান কোড থেকে, কোয়েটি নেই!
স্টারনামার

4

আমি এটি নথিভুক্ত দেখতে পেলাম না, তবে এখানে একটি রেফারেন্স ইঙ্গিত দেয় যে একমাত্র অনুমোদিত নীতিগুলি হ'ল এসিসিপিটিওর দ্রোপ। এই সময়ে খুঁজছি দ্বারা নিশ্চিত করা হয় সোর্স এর libiptcলাইন 2429, যেখানে কোড আছে প্রায় (যা বিশেষ নিয়মে সাধিত জন্য দায়ী)

2429         if (strcmp(policy, LABEL_ACCEPT) == 0)
2430                 c->verdict = -NF_ACCEPT - 1;
2431         else if (strcmp(policy, LABEL_DROP) == 0)
2432                 c->verdict = -NF_DROP - 1;
2433         else {
2434                 errno = EINVAL;
2435                 return 0;
2436         }

আসল থ্রেডটি করণে সেরা কাজটিকে পরামর্শ দেয় চেইনের শেষে REJECT যুক্ত করা উচিত যা হওয়া উচিত iptables -A OUTPUT -j REJECT

মনে রাখবেন যে এর ঠিক আগে কোডটি হ'ল:

2423         if (!iptcc_is_builtin(c)) {
2424                 DEBUGP("cannot set policy of userdefinedchain `%s'\n", chain);
2425                 errno = ENOENT;
2426                 return 0;
2427         }
2428 

সুতরাং আপনি নীতিটি মোটেই ব্যবহারকারীর সংজ্ঞায়িত চেইনে সেট করতে পারবেন না।


থ্রেডের সেই আদেশটি ভুল; -pএকটি প্রোটোকলের সাথে মিলের জন্য; তিনি -Aআমার উত্তর মত বলেছেন।
শন জে গফ

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

2

REJECTঅন OUTPUTকোন অর্থ দেয় না; একটি REJECTএকটি আইসিএমপি প্যাকেট ফিরিয়ে দেবে যা কোনও নেটওয়ার্ককে অতিক্রম করতে হবে।

-j LOGআপনার শেষ নিয়ম হিসাবে একটি নতুন যুক্ত করুন (অতএব DROPনীতির আগে ) OUTPUTশৃঙ্খলে এতদূর কী পায় তা দেখতে ।


1
REJECTআইসিএমপি প্যাকেটটি লো ইন্টারফেসে ফিরে আসতে পারেনি ? আমি সম্মত হই যে একটি সমস্যা সমাধানের LOGজন্য দরকারী, তবে আমি যা প্রত্যাশা করছিলাম তা হ'ল এটি আমাকে স্মরণ করিয়ে দেওয়ার একটি উপায় যা "ওহ, হ্যাঁ ... সম্ভবত এটি আমার DROPআইপেটেবল ডিফল্ট দ্বারা অবরুদ্ধ করা হচ্ছে " সমস্যা সমাধানের পরিবর্তে 5 মিনিটের জন্য সহকর্মীকে জিজ্ঞাসা করতে বলে এক্সওয়াইজেড সার্ভারটি অ্যাক্সেস বুঝতে পারে এটি সম্ভবত স্থানীয় , যা আমার সবচেয়ে সাধারণ পদ্ধতির, কারণ আমার সাধারণ কাজের দিন খুব কমই এমন জিনিসগুলিকে আঘাত করে যা আমি ইতিমধ্যে একটি গর্ত খুলি নি। অবশ্যই আমার REJECTএটি আরও ভালভাবে মনে রাখা দরকার, তবে একটি ফ্ল্যাট আরও স্পষ্ট।
এনডি গীক

আমি মনে করি না যে আপনি ইন্টারফেসটি বহু কারণে ইন্টারফেসে ethXট্র্যাফিক তৈরি করতে চান lo। তারা খুব স্বাধীন; আপনি সহজেই চেইনগুলি একটিতে প্রয়োগ করতে পারেন অন্যটিতে নয়।
অ্যারোন ডি মারাকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.