GoGPT Best VPN GoSearch

অনওয়ার্কস ফেভিকন

ফার্ম - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে ফার্ম চালান

এই কমান্ড ফার্ম যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


ফার্ম - লিনাক্সের জন্য একটি ফায়ারওয়াল নিয়ম পার্সার

সাইনোপিসিস


ফার্ম অপশন ইনপুট ফাইল

বর্ণনাঃ


ফার্ম জন্য একটি ফ্রন্টএন্ড iptables- র. এটি একটি কাঠামোগত কনফিগারেশন ফাইল থেকে নিয়মগুলি পড়ে
এবং কল iptables- র(8) চলমান কার্নেলে তাদের সন্নিবেশ করান।

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

এটি অর্জনের জন্য, ফার্ম একটি সহজ কিন্তু শক্তিশালী কনফিগারেশন ভাষা ব্যবহার করে, যা অনুমতি দেয়
ভেরিয়েবল, ফাংশন, অ্যারে, ব্লক। এটি আপনাকে অন্যান্য ফাইল অন্তর্ভুক্ত করার অনুমতি দেয়
আপনি সাধারণত ব্যবহৃত কাঠামো এবং ফাংশনগুলির লাইব্রেরি তৈরি করতে পারেন।

ফার্ম, উচ্চারিত "ফার্ম", এর অর্থ "সহজ নিয়ম তৈরির জন্য"।

সতর্কতা


এই ম্যানুয়াল পৃষ্ঠাটি করে না কিভাবে ফায়ারওয়ালিং কাজ করে এবং কিভাবে ভাল লিখতে হয় তা শেখাতে indend
নিয়ম এই বিষয়ে ইতিমধ্যে যথেষ্ট ডকুমেন্টেশন আছে.

সূচনা


একটি সহজ উদাহরণ দিয়ে শুরু করা যাক:

চেইন ইনপুট {
proto tcp ACCEPT;
}

এটি পূর্বনির্ধারিত ইনপুট চেইনে একটি নিয়ম যোগ করবে, সমস্ত tcp মিলবে এবং গ্রহণ করবে
প্যাকেট ঠিক আছে, আসুন এটি আরও জটিল করা যাক:

চেইন (ইনপুট আউটপুট) {
proto (udp tcp) ACCEPT;
}

এটি 4টি নিয়ম সন্নিবেশ করবে, যথা 2টি চেইন ইনপুটে এবং 2টি চেইন আউটপুটে, ম্যাচিং এবং
udp এবং tcp উভয় প্যাকেট গ্রহণ করা হচ্ছে। সাধারণত আপনি এটি টাইপ করবেন:

iptables -একটি ইনপুট -p tcp -j স্বীকার করুন
iptables -A আউটপুট -p tcp -j স্বীকার করুন
iptables -একটি ইনপুট -p udp -j স্বীকার করুন৷
iptables -একটি আউটপুট -p udp -j স্বীকার করুন

লক্ষ্য করুন আমাদের কত কম টাইপিং করতে হবে? :-)

মূলত, এটির মধ্যে এটিই রয়েছে, যদিও আপনি এটিকে আরও জটিল করে তুলতে পারেন।
দেখার মতো কিছু:

চেইন ইনপুট {
নীতি গ্রহণ;
daddr 10.0.0.0/8 proto tcp dport! এফটিপি জাম্প মাইচেন স্পোর্ট : 1023 TOS 4 সেটস 8 মার্ক 2;
daddr 10.0.0.0/8 proto tcp dport ftp প্রত্যাখ্যান;
}

আমার পয়েন্ট এখানে, যে *আপনাকে* সুন্দর নিয়ম তৈরি করতে হবে, সেগুলি আপনার কাছে পাঠযোগ্য রাখতে হবে এবং
অন্যদের, এবং এটি একটি জগাখিচুড়ি মধ্যে না.

রেফারেন্সের জন্য ফলস্বরূপ ফায়ারওয়াল নিয়ম এখানে স্থাপন করা হলে এটি পাঠককে সাহায্য করবে।
এছাড়াও, আপনি ভাল পঠনযোগ্যতার সাথে নেস্টেড সংস্করণ অন্তর্ভুক্ত করতে পারেন।

আপনি কি করছেন তা দেখানোর জন্য মন্তব্য ব্যবহার করার চেষ্টা করুন:

# এই লাইনটি অভ্যন্তরীণ নেটওয়ার্কের জন্য স্বচ্ছ http-প্রক্সি সক্ষম করে:
proto tcp যদি eth0 daddr! 192.168.0.0/255.255.255.0
dport http রিডাইরেক্ট টু পোর্ট 3128;

আপনি পরে এটি জন্য কৃতজ্ঞ হবে!

চেইন ইনপুট {
নীতি গ্রহণ;
ইন্টারফেস (eth0 ppp0) {
# নোটরিয়াস হ্যাকারদের অ্যাক্সেস অস্বীকার করুন, মিল না থাকলে এখানে ফিরে আসুন
# সাধারণ ফায়ারওয়ালিং পুনরায় শুরু করতে পাওয়া গেছে
লাফালাফি খারাপ লোক;

প্রোটোকল tcp জাম্প fw_tcp;
প্রোটোকল udp জাম্প fw_udp;
}
}

আপনি যত বেশি বাসা বাঁধেন, ততই ভালো দেখায়। নিশ্চিত করুন যে আপনার নির্দিষ্ট আদেশ সঠিক, আপনি
এটি করতে চাই না:

চেইন ফরওয়ার্ড {
প্রোটো udp ড্রপ;
proto tcp dport ftp ACCEPT;
}

কারণ দ্বিতীয় নিয়ম কখনই মিলবে না। সর্বোত্তম উপায় হল প্রথম সবকিছু উল্লেখ করা
অনুমোদিত, এবং তারপর অন্য সবকিছু অস্বীকার. আরো ভাল স্ন্যাপশট জন্য উদাহরণ তাকান.
বেশিরভাগ লোকেরা এইরকম কিছু করে:

প্রোটো টিসিপি {
dport (
ssh http ftp
) স্বীকার করুন;
ডিপোর্ট 1024:65535! syn ACCEPT;
ড্রপ;
}

গঠন OF A আগুন ফাইল


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

এই শব্দগুলির সাহায্যে, আপনি আপনার ফায়ারওয়ালের বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করুন৷ প্রতিটি ফায়ারওয়াল
দুটি জিনিস নিয়ে গঠিত: প্রথমত, দেখুন নেটওয়ার্ক ট্র্যাফিক নির্দিষ্ট শর্তের সাথে মেলে কিনা, এবং
দ্বিতীয়, যে ট্রাফিক সঙ্গে কি করতে হবে.

আপনি যে কার্নেল ইন্টারফেস প্রোগ্রামটি ব্যবহার করছেন তার জন্য বৈধ শর্তগুলি নির্দিষ্ট করতে পারেন,
সম্ভবত iptables- র(8)। উদাহরণস্বরূপ, iptables এ, যখন আপনি tcp প্যাকেটগুলি মেলানোর চেষ্টা করছেন,
তুমি বলবে:

iptables --protocol tcp

ফার্মে, এটি হয়ে যাবে:

প্রোটোকল tcp;

শুধু ফার্মে এটি টাইপ করলে কিছুই হয় না, আপনাকে ফার্মকে বলতে হবে (আসলে, আপনার প্রয়োজন
বলা iptables- র(8) এবং কার্নেল) এই অবস্থার সাথে মেলে এমন কোনও ট্র্যাফিকের সাথে কী করতে হবে:

iptables --protocol tcp -j স্বীকার করুন

অথবা, এতে অনুবাদ করা হয়েছে ফার্ম:

প্রোটোকল tcp ACCEPT;

সার্জারির ; অক্ষর প্রতিটি ফার্ম নিয়মের শেষে থাকে। ফার্ম লাইন বিরতি উপেক্ষা করে, যার অর্থ
উপরের উদাহরণ নিম্নলিখিত অনুরূপ:

প্রোটোকল টিসিপি
গ্রহণ;

এখানে বিশেষ অক্ষরের একটি তালিকা রয়েছে:

; এই চরিত্রটি একটি নিয়ম চূড়ান্ত করে।

সেমিকোলন দ্বারা পৃথক, আপনি এক লাইনে একাধিক নিয়ম লিখতে পারেন, যদিও এটি
পাঠযোগ্যতা হ্রাস করে:

প্রোটোকল tcp ACCEPT; প্রোটোকল udp DROP;

{} নেস্টিং প্রতীক নিয়মের একটি 'ব্লক' সংজ্ঞায়িত করে।

কোঁকড়া বন্ধনীতে যেকোনো সংখ্যক নেস্টেড নিয়ম রয়েছে। এর আগে সব ম্যাচ
ব্লক এই এগিয়ে বাহিত হয়.

ক্লোজিং কোঁকড়া বন্ধনী নিয়ম সেট চূড়ান্ত করে। আপনার ';' লেখা উচিত নয় পরে
যে, কারণ যে একটি খালি নিয়ম হবে.

উদাহরণ:

চেইন ইনপুট প্রোটো আইসিএমপি {
icmp-টাইপ ইকো-অনুরোধ স্বীকার করুন;
ড্রপ;
}

এই ব্লকটি একটি ব্লকের ভিতরে দুটি নিয়ম দেখায়, যে দুটিই যেকোনো কিছুর সাথে একত্রিত হবে
এটির সামনে, তাই আপনি দুটি নিয়ম পাবেন:

iptables -A INPUT -p icmp -icmp-টাইপ ইকো-রিকোয়েস্ট -j গ্রহন করুন
iptables -A INPUT -p icmp -j ড্রপ

একাধিক নেস্টিং স্তর থাকতে পারে:

চেইন ইনপুট {
প্রোটো আইসিএমপি {
icmp-টাইপ ইকো-অনুরোধ স্বীকার করুন;
ড্রপ;
}
daddr 172.16.0.0/12 প্রত্যাখ্যান;
}

মনে রাখবেন যে 'প্রত্যাখ্যান' নিয়মটি 'প্রোটো আইসিএমপি' দ্বারা প্রভাবিত হয় না, যদিও সেখানে নেই
';' বন্ধ কোঁকড়া বন্ধনী পরে. iptables এ অনুবাদ করা হয়েছে:

iptables -A INPUT -p icmp -icmp-টাইপ ইকো-রিকোয়েস্ট -j গ্রহন করুন
iptables -A INPUT -p icmp -j ড্রপ
iptables -A INPUT -d 172.16.0.0/12 -j প্রত্যাখ্যান

$ পরিবর্তনশীল সম্প্রসারণ। ভেরিয়েবলের মান দ্বারা '$FOO' প্রতিস্থাপন করে। বিভাগ দেখুন
বৈচিত্র্য বিস্তারিত জানার জন্য.

& ফাংশন কল. বিভাগ দেখুন ফাংশন বিস্তারিত জানার জন্য.

() অ্যারে প্রতীক। বন্ধনী ব্যবহার করে, আপনি মানগুলির একটি 'তালিকা' সংজ্ঞায়িত করতে পারেন
এটির বাম দিকে চাবির জন্য প্রয়োগ করা উচিত।

উদাহরণ:

প্রোটোকল ( tcp udp icmp )

এর ফলে তিনটি নিয়ম হবে:

... -p tcp...
... -পি ইউডিপি ...
... -p icmp...

শুধুমাত্র মানগুলি 'তালিকাবদ্ধ' হতে পারে, তাই আপনি এইরকম কিছু করতে পারবেন না:

proto tcp ( লগ গ্রহণ করুন );

কিন্তু আপনি এটি করতে পারেন:

চেইন (ইনপুট আউটপুট ফরওয়ার্ড) প্রোটো (আইসিএমপি ইউডিপি টিসিপি) ড্রপ;

(যার ফলে নয়টি নিয়ম হবে!)

মান স্পেস দ্বারা পৃথক করা হয়. অ্যারে প্রতীকটি বাম এবং ডান উভয়ই-
সহযোগী, নেস্টিং ব্লকের বিপরীতে, যা শুধুমাত্র বাম-সহযোগী।

"#" মন্তব্য চিহ্ন। লাইনের শেষ পর্যন্ত এই চিহ্নটি অনুসরণ করে এমন কিছু
উপেক্ষা করা

"আদেশ""
একটি শেলে কমান্ডটি চালান এবং প্রক্রিয়া আউটপুট সন্নিবেশ করুন। বিভাগ দেখুন
ব্যাকটিক্স বিস্তারিত জানার জন্য.

'স্ট্রিং'
একটি স্ট্রিং উদ্ধৃত করুন যাতে সাদা স্থান, ডলার চিহ্ন ইত্যাদি থাকতে পারে।

LOG log-prefix 'আরে, এটা আমার লগ উপসর্গ!';

"স্ট্রিং"
একটি স্ট্রিং উদ্ধৃত করুন (উপরে দেখুন), কিন্তু একটি ডলার চিহ্ন সহ পরিবর্তনশীল উল্লেখগুলি
মূল্যায়ন করা হয়েছে:

DNAT থেকে "$myhost:$myport";

মূলশব্দ
পূর্ববর্তী বিভাগে, আমরা ইতিমধ্যে "চেইন" এর মত কিছু মৌলিক কীওয়ার্ড প্রবর্তন করেছি।
"প্রটোকল" এবং "ACCEPT"। আসুন তাদের প্রকৃতি অন্বেষণ করা যাক.

তিন ধরনের কীওয়ার্ড আছে:

· অবস্থান কীওয়ার্ডগুলি নির্ধারণ করে যেখানে একটি নিয়ম তৈরি করা হবে। উদাহরণ: "টেবিল", "চেইন"।

· ম্যাচ কীওয়ার্ড সমস্ত পাসিং প্যাকেটের উপর একটি পরীক্ষা করে। বর্তমান নিয়ম ছাড়া
এক (বা একাধিক) ম্যাচ পাস না হলে প্রভাব। উদাহরণ: "প্রোটো", "দাদর"।

বেশিরভাগ ম্যাচ একটি প্যারামিটার দ্বারা অনুসরণ করা হয়: "প্রোটো টিসিপি", "ড্যাডার 172.16.0.0/12"।

· লক্ষ্য কীওয়ার্ড একটি প্যাকেট দিয়ে কি করতে হবে তা বলে। উদাহরণ: "গ্রহণ করুন", "প্রত্যাখ্যান করুন",
"লাফ"।

কিছু লক্ষ্য বিশদ উল্লেখ করার জন্য আরও কীওয়ার্ড সংজ্ঞায়িত করে: "প্রত্যাখ্যান করুন-আইসিএমপি- সহ
নেট-অনুগ্য"।

প্রতিটি নিয়ম একটি নিয়ে গঠিত অবস্থান এবং একটি লক্ষ্য, প্লাস যেকোনো সংখ্যা ম্যাচ:

টেবিল ফিল্টার # অবস্থান
proto tcp dport (http https) # মিল
গ্রহণ; # টার্গেট

কঠোরভাবে বলতে গেলে, একটি চতুর্থ ধরনের আছে: ফার্ম কীওয়ার্ড (যা ফার্মের অভ্যন্তরীণ নিয়ন্ত্রণ করে
আচরণ), কিন্তু সেগুলো পরে ব্যাখ্যা করা হবে।

পরামিতি
অনেক কীওয়ার্ড প্যারামিটার নেয়। এগুলি আক্ষরিক, পরিবর্তনশীল রেফারেন্স বা হিসাবে নির্দিষ্ট করা যেতে পারে
তালিকা (অ্যারে):

প্রোটো ইউডিপি
সদর $TRUSTED_HOSTS;
proto tcp dport (http https ssh);
LOG লগ-উপসর্গ "Funky wardriver alert: ";

তাদের মধ্যে কিছু অস্বীকার করা যেতে পারে (তালিকাগুলিকে অস্বীকার করা যাবে না):

প্রোটো!এসপি;
প্রোটো ইউডিপি ডিপোর্ট !ডোমেইন;

কোন প্যারামিটার গ্রহণ করে না এমন কীওয়ার্ড একটি উপসর্গ '!' দ্বারা অস্বীকার করা হয়:

proto tcp !syn;

পড়া iptables- র(8) কোথায় দেখতে ! ব্যবহার করা যেতে পারে.

বেসিক KEYWORDS


অবস্থান কীওয়ার্ড
ডোমেইন [আইপি|আইপি6]
ডোমেইন সেট করুন। "ip" ডিফল্ট এবং মানে "IPv4" (iptables)। "ip6" হল IPv6 এর জন্য
সমর্থন, "ip6tables" ব্যবহার করে।

টেবিল [ফিল্টার|ন্যাট|মঙ্গল]
এই নিয়মটি কোন নেটফিল্টার টেবিলে ঢোকানো হবে তা নির্দিষ্ট করে: "ফিল্টার" (ডিফল্ট),
"নাট" বা "মঙ্গল"।

চেন [চেইন-নাম]
নেটফিল্টার চেইন নির্দিষ্ট করে (বর্তমান টেবিলের মধ্যে) এই নিয়ম হবে
ঢোকানো. সাধারণ পূর্বনির্ধারিত চেইন নামগুলি হল "INPUT", "OUTPUT", "FORWARD",
"PREROUTING", "POSTROUTING", টেবিলের উপর নির্ভর করে। নেটফিল্টার দেখুন
বিস্তারিত তথ্যের জন্য ডকুমেন্টেশন।

আপনি যদি এখানে একটি অ-বিদ্যমান চেইন উল্লেখ করেন, তাহলে ফার্ম একটি কাস্টম চেইনে নিয়ম যোগ করবে
সেই নামের সাথে।

নীতি [স্বীকার করুন|ড্রপ|...]
বর্তমান চেইনের জন্য ডিফল্ট নীতি নির্দিষ্ট করে (শুধুমাত্র অন্তর্নির্মিত)। এর একটি হতে পারে
অন্তর্নির্মিত লক্ষ্যগুলি (স্বীকার করুন, ড্রপ করুন, প্রত্যাখ্যান করুন, ...)। একটি প্যাকেট যা কোন নিয়মের সাথে মেলে না
একটি চেইন নীতি দ্বারা নির্দিষ্ট হিসাবে বিবেচিত হবে.

অস্পষ্টতা এড়াতে, সর্বদা সমস্ত পূর্বনির্ধারিত চেইনের নীতিগুলি নির্দিষ্ট করুন৷
স্পষ্টভাবে।

@সাবচেন ["চেইন-নাম"] { ... }
সাধারণ ব্লক অপারেটরদের মত কাজ করে (যেমন ছাড়া @সাবচেন কীওয়ার্ড), ছাড়া
যে ফার্ম কোঁকড়া ধনুর্বন্ধনীর মধ্যে নিয়মগুলিকে একটি নতুন কাস্টম চেইনে নিয়ে যায়৷ নাম
এই চেইন জন্য স্বয়ংক্রিয়ভাবে ফার্ম দ্বারা নির্বাচিত হয়.

অনেক ক্ষেত্রে, এটি শুধুমাত্র একটি ব্লকের চেয়ে দ্রুত, কারণ কার্নেলটি এড়িয়ে যেতে পারে
নিয়মের বিশাল ব্লক যখন একটি পূর্বশর্ত মিথ্যা হয়। নিম্নলিখিত উদাহরণ কল্পনা করুন:

টেবিল ফিল্টার চেইন ইনপুট {
সদর (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8) {
proto tcp dport (http https ssh) স্বীকার করুন;
proto udp dport ডোমেইন ACCEPT;
}
}

এটি 20টি নিয়ম তৈরি করে। যখন একটি প্যাকেট আসে যা পাস করে না সদর
ম্যাচ, তবুও এটি সমস্ত 20 টি নিয়ম চেক করে। সঙ্গে @সাবচেন, এই চেক করা হয়
একবার, দ্রুত নেটওয়ার্ক ফিল্টারিং এবং কম CPU লোডের ফলে:

টেবিল ফিল্টার চেইন ইনপুট {
সদর (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8) @subchain {
proto tcp dport (http https ssh) স্বীকার করুন;
proto udp dport ডোমেইন ACCEPT;
}
}

ঐচ্ছিকভাবে, আপনি সাব চেইনের নাম নির্ধারণ করতে পারেন:

সদর (1.2.3.4 2.3.4.5 3.4.5.6) @subchain "foobar" {
proto tcp dport (http https ssh) স্বীকার করুন;
proto udp dport ডোমেইন ACCEPT;
}

নামটি হয় একটি উদ্ধৃত স্ট্রিং আক্ষরিক, অথবা একটি প্রসারিত ফার্ম অভিব্যক্তি হতে পারে
যেমন @cat("interface_", $iface) বা @substr($var,0,20)।

আপনি স্পষ্টভাবে একটি কাস্টম চেইন ঘোষণা করে একই অর্জন করতে পারেন, কিন্তু আপনি অনুভব করতে পারেন
যে ব্যবহার করে @সাবচেন কম টাইপিং প্রয়োজন।

মৌলিক iptables- র ম্যাচ কীওয়ার্ড
ইন্টারফেস [ইন্টারফেস-নাম]
ইন্টারফেসের নাম, আপনার বাইরের নেটওয়ার্ক কার্ড, যেমন eth0, বা ডায়ালআপের মতো সংজ্ঞায়িত করুন
ppp1, বা প্যাকেটগুলি পাস করার জন্য আপনি যে কোনও ডিভাইস মেলতে চান। এটি সমতুল্য
"-i" সুইচ ইন করুন iptables- র(8).

বাইরের মুখ [ইন্টারফেস-নাম]
ইন্টারফেসের মতোই, শুধুমাত্র প্যাকেটের আউটগোয়িং ইন্টারফেসের সাথে মেলানোর জন্য
iptables- র(8).

প্রোটোকল [প্রোটোকল-নাম|প্রটোকল-নম্বর]
বর্তমানে কার্নেল দ্বারা সমর্থিত হল tcp, udp এবং icmp, অথবা তাদের নিজ নিজ
নম্বর।

সদর | বাবা [ঠিকানা-বিশেষ]
নির্দিষ্ট ঠিকানা (saddr) থেকে উদ্ভূত প্যাকেটের মিল বা লক্ষ্য করা হয়েছে
ঠিকানা (বাবা)।

উদাহরণ:

সদর 192.168/8 স্বীকার করুন; # (পরেরটির অনুরূপ:)
সদর 192.168.0.0/255.255.255.0 স্বীকার করুন;
daddr my.domain.com ACCEPT;

টুকরা
নির্দিষ্ট করুন যে শুধুমাত্র খণ্ডিত আইপি প্যাকেটগুলি মিলে যাওয়া উচিত। যখন প্যাকেট হয়
আপনার সিস্টেম যে সর্বাধিক প্যাকেটের আকার পরিচালনা করতে পারে তার চেয়ে বড় (সর্বোচ্চ বলা হয়
ট্রান্সমিশন ইউনিট বা এমটিইউ) এগুলিকে বিটগুলিতে কাটা হবে এবং একে একে পাঠানো হবে
একক প্যাকেট। দেখা ifconfig(8) আপনি যদি আপনার সিস্টেমের জন্য MTU খুঁজে পেতে চান (
ডিফল্ট সাধারণত 1500 বাইট হয়)।

খন্ডগুলি প্রায়শই ডস আক্রমণে ব্যবহৃত হয়, কারণ খুঁজে পাওয়ার কোন উপায় নেই
একটি টুকরা প্যাকেটের উৎপত্তি আউট.

খেলাধুলা|dport [বন্দর-বিশেষ]
নির্দিষ্ট TCP বা UDP পোর্টে প্যাকেটের সাথে মিল। "ক্রীড়া" উৎসের সাথে মেলে
পোর্ট, এবং dport গন্তব্য পোর্টের সাথে মেলে।

আপনি "প্রোটোকল টিসিপি" বা "প্রোটোকল ইউডিপি" উল্লেখ করার পরেই এই ম্যাচটি ব্যবহার করা যেতে পারে,
কারণ শুধুমাত্র এই দুটি প্রোটোকলের আসলে পোর্ট আছে।

এবং বৈধ পোর্ট/রেঞ্জের কিছু উদাহরণ:

dport 80 ACCEPT;
dport http ACCEPT;
dport ssh:http স্বীকার করুন;
dport 0:1023 স্বীকার করুন; # :1023 এর সমতুল্য
dport 1023:65535 স্বীকার করুন;

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

মডিউল [মডিউল-নাম]
একটি iptables মডিউল লোড করুন। বেশির ভাগ মডিউল বেশি মিল কীওয়ার্ড প্রদান করে। আমরা পেতে হবে
যে পরে

মৌলিক লক্ষ্য কীওয়ার্ড
ঝাঁপ [কাস্টম-চেইন-নাম]
একটি কাস্টম চেইনে ঝাঁপ দেয়। কাস্টম চেইনের কোনো নিয়ম না মিললে, নেটফিল্টার রিটার্ন করে
আগের চেইনের পরবর্তী নিয়মে।

realgoto [কাস্টম-চেইন-নাম]
একটি কাস্টম চেইন যান. অসদৃশ ঝাঁপ বিকল্প, প্রত্যাবর্তন প্রক্রিয়াকরণ চালিয়ে যাবে না
এই শৃঙ্খলে কিন্তু পরিবর্তে যে চেইন মাধ্যমে আমাদের ডাকা ঝাঁপ.

মূলশব্দ realgoto ট্রানজিশন পিরিয়ডের সময় বেছে নেওয়া হয়েছিল, কারণ এতে যান
(ইতিমধ্যেই অপ্রচলিত) একটি উপনাম হতে ব্যবহৃত ঝাঁপ.

গ্রহণ ম্যাচিং প্যাকেট গ্রহণ করে.

ড্রপ পরবর্তী নোটিশ ছাড়াই ম্যাচিং প্যাকেট ফেলে দিন।

বাতিল ম্যাচিং প্যাকেটগুলি প্রত্যাখ্যান করে, অর্থাৎ প্রেরকের কাছে একটি ICMP প্যাকেট পাঠান, যা পোর্ট-
ডিফল্টরূপে পৌঁছানো যায় না। আপনি অন্য ICMP প্রকার নির্দিষ্ট করতে পারেন।

প্রত্যাখ্যান; # icmp-port-এ ডিফল্ট-অগম্য
প্রত্যাখ্যান প্রত্যাখ্যান-আইসিএমপি-নেট-নাগালযোগ্য সহ;

বিস্তারিত জানার জন্য "iptables -j REJECT -h" টাইপ করুন।

প্রত্যাবর্তন বর্তমান চেইন শেষ করুন এবং কলিং চেইনে ফিরে যান (যদি "জাম্প
[কাস্টম-চেইন-নাম]" ব্যবহার করা হয়েছিল)।

NOP কোনো অ্যাকশন নেই।

অতিরিক্ত KEYWORDS


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

iptables- র ম্যাচ মডিউল
হিসাব সংজ্ঞায়িত নেটওয়ার্ক/নেটমাস্কে সমস্ত হোস্টের জন্য অ্যাকাউন্ট ট্র্যাফিক। এই এক
ম্যাচ মডিউল যা একটি লক্ষ্যের মত আচরণ করে, অর্থাৎ আপনাকে বেশিরভাগই ব্যবহার করতে হবে NOP
লক্ষ্য।

mod অ্যাকাউন্ট aname mynetwork aaddr 192.168.1.0/24 সংক্ষিপ্ত NOP;

addrtype
ঠিকানার ধরন পরীক্ষা করুন; হয় উৎস ঠিকানা বা গন্তব্য ঠিকানা।

mod addrtype src-টাইপ ব্রডকাস্ট;
mod addrtype dst-টাইপ স্থানীয়;

বিস্তারিত জানার জন্য "iptables -m addrtype -h" টাইপ করুন।

ah একটি AH প্যাকেটে SPI হেডার চেক করে।

mod ah ahspi 0x101;
মোড আহ আহস্পি! 0x200:0x2ff;

IPv6 এর জন্য অতিরিক্ত আর্গুমেন্ট:

mod ah ahlen 32 ACCEPT;
মোড আহ আহলেন !32 স্বীকার করুন;
mod ah ahres ACCEPT;

মন্তব্য কোনো প্রভাব ছাড়াই একটি নিয়মে 256টি অক্ষরের একটি মন্তব্য যোগ করে। মনে রাখবেন যে
ফার্ম মন্তব্যের বিপরীতে ('#'), এটি "iptables -L" এ দেখাবে।

মোড মন্তব্য মন্তব্য "এটি আমার মন্তব্য।" গ্রহণ;

শর্ত
/proc/net/ipt_condition/NAME-এর মান 1 হলে মেলে (পাথ হল
ip6 ডোমেনের জন্য /proc/net/ip6t_condition/NAME)।

mod শর্ত শর্ত (abc def) ACCEPT;
মোড কন্ডিশন কন্ডিশন!foo ACCEPT;

connbytes
কত বাইট বা প্যাকেট একটি সংযোগ (বা দুটি প্রবাহের একটি) দ্বারা মিলান
সংযোগ গঠন) এখন পর্যন্ত স্থানান্তরিত হয়েছে, বা প্রতি গড় বাইট দ্বারা
প্যাকেট

mod connbytes connbytes 65536: connbytes-dir উভয় connbytes-মোড বাইট ACCEPT;
mod connbytes connbytes !1024:2048 connbytes-dir উত্তর connbytes-মোড প্যাকেট গ্রহন করুন;

এর জন্য বৈধ মান connbytes-dir: মূল, রিপ্লাই, উভয়; জন্য connbytes-মোড:
প্যাকেট, বাইট, avgpkt.

সীমাবদ্ধতা
আপনাকে প্রতি সার্ভারে সমান্তরাল TCP সংযোগের সংখ্যা সীমাবদ্ধ করার অনুমতি দেয়
ক্লায়েন্ট আইপি ঠিকানা (বা ঠিকানা ব্লক)।

mod connlimit connlimit-উপরে 4 REJECT;
mod connlimit connlimit-উপরে !4 স্বীকার করুন;
mod connlimit connlimit-above 4 connlimit-mask 24 REJECT;

connmark
CONNMARK টার্গেট দ্বারা সেট করা সংযোগের সাথে যুক্ত চিহ্নিত ক্ষেত্রটি পরীক্ষা করুন।

mod connmark মার্ক 64;
mod connmark মার্ক 6/7;

কনট্র্যাক
সংযোগ ট্র্যাকিং তথ্য পরীক্ষা করুন.

mod conntrack ctstate (প্রতিষ্ঠিত সম্পর্কিত);
mod conntrack ctproto tcp;
mod conntrack ctorigsrc 192.168.0.2;
mod conntrack ctorigdst 1.2.3.0/24;
mod conntrack ctorigsrcport 67;
mod conntrack ctorigdstport 22;
mod conntrack ctreplsrc 2.3.4.5;
mod conntrack ctrepldst! 3.4.5.6;
mod conntrack ctstatus নিশ্চিত;
mod conntrack ctexpire 60;
mod conntrack ctexpire 180:240;

বিস্তারিত জানার জন্য "iptables -m conntrack -h" টাইপ করুন।

dccp DCCP (ডেটাগ্রাম কনজেশন কন্ট্রোল প্রোটোকল) নির্দিষ্ট বৈশিষ্ট্য পরীক্ষা করুন। এই
আপনি যখন "প্রোটোকল dccp" ব্যবহার করেন তখন মডিউল স্বয়ংক্রিয়ভাবে লোড হয়।

proto dccp sport 1234 dport 2345 ACCEPT;
proto dccp dccp-টাইপস (SYNCACK ACK) গ্রহন করুন;
proto dccp dccp-টাইপ! অনুরোধ ড্রপ;
proto dccp dccp-বিকল্প 2 স্বীকার করুন;

ডিএসসিপি TOS ক্ষেত্রের মধ্যে 6 বিট DSCP ক্ষেত্রের সাথে মিল করুন।

mod dscp dscp 11;
mod dscp dscp-শ্রেণী AF41;

ECN একটি IPv4 TCP শিরোলেখের ECN বিটগুলি মিলান৷

মোড ecn ecn-tcp-cwr;
mod ecn ecn-tcp-ece;
mod ecn ecn-ip-ect 2;

বিস্তারিত জানার জন্য "iptables -m ecn -h" টাইপ করুন।

ESP একটি ESP প্যাকেটে SPI হেডার চেক করে।

mod esp espspi 0x101;
মোড esp espspi! 0x200:0x2ff;

eui64 "এই মডিউলটি একটি স্টেটলেস স্বয়ংক্রিয় কনফিগার করা IPv64 ঠিকানার EUI-6 অংশের সাথে মেলে৷
এটি Ehternet ফ্রেমের উৎস MAC ঠিকানা থেকে প্রাপ্ত EUI-64 এর সাথে তুলনা করে
IPv64 উৎস ঠিকানার নিচের 6 বিট। কিন্তু "ইউনিভার্সাল/স্থানীয়" বিট নয়
তুলনা এই মডিউলটি অন্য লিঙ্ক লেয়ার ফ্রেমের সাথে মেলে না এবং এটি শুধুমাত্র বৈধ
প্রিরাউটিং, ইনপুট এবং ফরওয়ার্ড চেইন।"

mod eui64 স্বীকার করুন;

ঝাপসা "এই মডিউলটি একটি ফাজি লজিক কন্ট্রোলার [FLC] এর উপর ভিত্তি করে একটি হার সীমার সাথে মেলে।"

মোড অস্পষ্ট নিম্ন-সীমা 10 উচ্চ-সীমা 20 স্বীকার করুন;

hbh Hop-by-Hop অপশন হেডার (ip6) এর সাথে মেলে।

mod hbh hbh-len 8 স্বীকার করুন;
mod hbh hbh-len !8 স্বীকার করুন;
mod hbh hbh-opts (1:4 2:8) স্বীকার করুন;

hl Hop Limit ফিল্ডের সাথে মেলে (ip6)।

mod hl hl-eq (8 10) স্বীকার করুন;
mod hl hl-eq !5 স্বীকার করুন;
mod hl hl-gt 15 স্বীকার করুন;
mod hl hl-lt ​​2 স্বীকার করুন;

সাহায্যকারী কোন কনট্র্যাক হেল্পার মডিউল এই সংযোগ ট্র্যাক করে তা পরীক্ষা করে। বন্দর হতে পারে
"-portnr" দিয়ে নির্দিষ্ট করা হয়েছে।

মোড হেল্পার হেল্পার IRC ACCEPT;
মোড হেল্পার হেল্পার ftp-21 ACCEPT;

আইসিএমপি ICMP নির্দিষ্ট বৈশিষ্ট্য পরীক্ষা করুন. আপনি যখন ব্যবহার করেন তখন এই মডিউলটি স্বয়ংক্রিয়ভাবে লোড হয়
"প্রটোকল আইসিএমপি"।

proto icmp icmp-টাইপ ইকো-অনুরোধ স্বীকার করুন;

এই বিকল্পটিও ব্যবহার করা যেতে পারে ip6 ডোমেইন, যদিও এটি বলা হয় icmpv6 in
ip6 টেবিল.

বৈধ ICMP প্রকারের তালিকা পেতে "iptables -p icmp "-h"" ব্যবহার করুন।

iprange IPv4 ঠিকানাগুলির একটি পরিসরের সাথে মিল করুন।

mod iprange src-রেঞ্জ 192.168.2.0-192.168.3.255;
মোড আইপ্রেঞ্জ ডিএসটি-রেঞ্জ! 192.168.6.0-192.168.6.255;

ipv4 বিকল্প
সোর্স রাউটিং, রেকর্ড রুট, টাইমস্ট্যাম্প এবং মত আইপিভি 4 হেডার বিকল্পগুলিতে ম্যাচ করুন
রাউটার-সতর্ক

mod ipv4options ssrr স্বীকার করুন;
mod ipv4options lsrr স্বীকার করুন;
mod ipv4options no-srr স্বীকার করুন;
mod ipv4options !rr স্বীকার করুন;
mod ipv4options !ts স্বীকার করুন;
mod ipv4options !ra ACCEPT;
mod ipv4options !যেকোনো-অপ্ট গ্রহন করুন;

ipv6 হেডার
IPv6 এক্সটেনশন হেডার (ip6) এর সাথে মেলে।

mod ipv6header হেডার !(হপ ফ্র্যাগ) গ্রহন করুন;
mod ipv6header হেডার (auth dst) ACCEPT;

hashlimit
'মোড লিমিট'-এর মতো, কিন্তু প্রতি-গন্তব্য বা প্রতি-পোর্ট যোগ করার ক্ষমতা যোগ করে
একটি হ্যাশ টেবিলে পরিচালিত সীমা।

মোড হ্যাশলিমিট হ্যাশলিমিট 10/মিনিট হ্যাশলিমিট-বার্স্ট 30/মিনিট
hashlimit-mode dstip hashlimit-নাম foobar ACCEPT;

হ্যাশলিমিট-মোডের জন্য সম্ভাব্য মান: dstip dstport srcip srcport (বা এর সাথে একটি তালিকা
এর মধ্যে একাধিক)।

আরও সম্ভাব্য সেটিংস আছে, এর জন্য "iptables -m hashlimit -h" টাইপ করুন
ডকুমেন্টেশন।

লম্বা প্যাকেজের দৈর্ঘ্য পরীক্ষা করুন।

মোড দৈর্ঘ্য দৈর্ঘ্য 128; # ঠিক 128 বাইট
মোড দৈর্ঘ্য দৈর্ঘ্য 512:768; # পরিসীমা
মোড দৈর্ঘ্য দৈর্ঘ্য! 256; # বাতিল

সীমা প্যাকেটের হার সীমিত করে।

মোড সীমা সীমা 1/সেকেন্ড;
মোড লিমিট লিমিট 15/মিনিট লিমিট-বার্স্ট 10;

বিস্তারিত জানার জন্য "iptables -m limit -h" টাইপ করুন।

ম্যাক উৎস MAC ঠিকানা মেলে.

মোড ম্যাক ম্যাক-উৎস 01:23:45:67:89;

ছাপ তাদের নেটফিল্টার চিহ্ন ক্ষেত্রের উপর ভিত্তি করে প্যাকেট মেলে। এটি একটি 32 বিট পূর্ণসংখ্যা হতে পারে
0 এবং 4294967295 এর মধ্যে

মোড মার্ক মার্ক 42;

mh গতিশীলতা হেডারের সাথে মেলে (ডোমেন ip6).

proto mh mh-টাইপ বাইন্ডিং-আপডেট ACCEPT;

মাল্টিপোর্ট
উৎস বা গন্তব্য পোর্টের একটি সেট মিলান (শুধুমাত্র UDP এবং TCP)।

মোড মাল্টিপোর্ট সোর্স-পোর্ট (https ftp);
মোড মাল্টিপোর্ট গন্তব্য-বন্দর (mysql ডোমেইন);

এই নিয়মটির "dport" এবং "sport" এর উপর একটি বড় সুবিধা রয়েছে: এটি শুধুমাত্র একটি নিয়ম তৈরি করে
প্রতিটি পোর্টের জন্য একটি নিয়মের পরিবর্তে 15টি পোর্ট পর্যন্ত।

n তম প্রতিটি 'n'th প্যাকেট ম্যাচ.

mod nth প্রতি 3;
mod nth কাউন্টার 5 প্রতি 2;
mod nth শুরু 2 প্রতি 3;
mod nth স্টার্ট 5 প্যাকেট 2 প্রতি 6;

বিস্তারিত জানার জন্য "iptables -m nth -h" টাইপ করুন।

ওএসএফ প্রেরকের অপারেটিং সিস্টেমের উপর নির্ভর করে প্যাকেটগুলি মেলে।

মোড ওএসএফ জেনার লিনাক্স;
মোড ওএসএফ! জেনার ফ্রিবিএসডি টিটিএল 1 লগ 1;

বিস্তারিত জানার জন্য "iptables -m osf -h" টাইপ করুন।

মালিক প্যাকেট নির্মাতা সম্পর্কে তথ্য পরীক্ষা করুন, যথা ব্যবহারকারী আইডি, গ্রুপ আইডি, প্রসেস আইডি,
সেশন আইডি এবং কমান্ডের নাম।

mod মালিক uid-owner 0;
মোড মালিক gid-মালিক 1000;
মোড মালিক পিড-মালিক 5432;
মোড মালিক সিড-ওনার 6543;
মোড মালিক সিএমডি-মালিক "সেন্ডমেইল";

("cmd-owner", "pid-owner" এবং "sid-owner"-এর জন্য বিশেষ কার্নেল প্যাচ প্রয়োজন হয় না
ভ্যানিলা লিনাক্স কার্নেলে অন্তর্ভুক্ত)

physdev শারীরিক ডিভাইসের সাথে মেলে যেটিতে একটি প্যাকেট প্রবেশ করেছে বা ছেড়ে যেতে চলেছে৷
মেশিন এটি ব্রিজড ইন্টারফেসের জন্য দরকারী।

mod physdev physdev-in ppp1;
mod physdev physdev-out eth2;
mod physdev physdev-is-in;
mod physdev physdev-is-out;
mod physdev physdev-is-bridged;

pktype লিঙ্ক-লেয়ার প্যাকেটের ধরন পরীক্ষা করুন।

mod pktype pkt-টাইপ ইউনিকাস্ট;
mod pktype pkt-টাইপ ব্রডকেস;
mod pktype pkt-টাইপ মাল্টিকাস্ট;

নীতি মেলে IPsec নীতি এই প্যাকেটে প্রয়োগ করা হচ্ছে।

mod নীতি dir out pol ipsec ACCEPT;
মড পলিসি স্ট্রিক্ট রিকিউড 23 spi 0x10 proto ah ACCEPT;
মোড নীতি মোড টানেল টানেল-src 192.168.1.2 গ্রহন করুন;
মোড নীতি মোড টানেল টানেল-dst 192.168.2.1 গ্রহন করুন;
মোড নীতি কঠোর পরবর্তী প্রয়োজনীয় 24 spi 0x11 গ্রহন করুন;

লক্ষ্য করুন যে কীওয়ার্ড প্রোটো এর সংক্ষিপ্ত সংস্করণ হিসাবেও ব্যবহৃত হয় প্রোটোকল
(বিল্ট-ইন ম্যাচ মডিউল)। আপনি সর্বদা লং ব্যবহার করে এই বিরোধের সমাধান করতে পারেন
শব্দ প্রোটোকল.

পিএসডি TCP/UDP পোর্ট স্ক্যান সনাক্ত করুন।

mod psd psd-ওজন-থ্রেশহোল্ড 21 psd-বিলম্ব-থ্রেশহোল্ড 300
psd-lo-ports-weight 3 psd-hi-ports-weight 1 DROP;

ভাগ প্রতিটি প্যাকেটের সাথে একটি বাইট কাউন্টার কমিয়ে নেটওয়ার্ক কোটা প্রয়োগ করে।

মোড কোটা কোটা 65536 ACCEPT;

এলোমেলো সমস্ত প্যাকেটের র্যান্ডম শতাংশের সাথে মিল করুন।

মোড এলোমেলো গড় 70;

রাজত্ব রাউটিং রাজ্যের সাথে মেলে। BGP ব্যবহার করে পরিবেশে দরকারী।

mod realm realm 3;

সাম্প্রতিক অস্থায়ীভাবে উৎস আইপি ঠিকানা চিহ্নিত করুন.

mod সাম্প্রতিক সেট;
mod সাম্প্রতিক rcheck সেকেন্ড 60;
mod সাম্প্রতিক সেট rsource নাম "badguy";
mod সাম্প্রতিক সেট rdest;
mod সাম্প্রতিক rcheck rsource নাম "badguy" সেকেন্ড 60;
mod সাম্প্রতিক আপডেট সেকেন্ড 120 হিটকাউন্ট 3 rttl;

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

<http://snowman.net/projects/ipt_recent/>

rt IPv6 রাউটিং হেডার (শুধুমাত্র ip6) মিলান।

mod rt rt-type 2 rt-len 20 ACCEPT;
mod rt rt-type !2 rt-len !20 স্বীকার করুন;
mod rt rt-segsleft 2:3 স্বীকার করুন;
mod rt rt-segsleft !4:5 স্বীকার করুন;
mod rt-0-res rt-0-addrs (::1 ::2) rt-0-নয়-কঠোর স্বীকার করুন;

sctp SCTP (স্ট্রিম কন্ট্রোল ট্রান্সমিশন প্রোটোকল) নির্দিষ্ট বৈশিষ্ট্য পরীক্ষা করুন। এই
আপনি যখন "protocol sctp" ব্যবহার করেন তখন মডিউল স্বয়ংক্রিয়ভাবে লোড হয়।

proto sctp sport 1234 dport 2345 ACCEPT;
proto sctp খণ্ড-টাইপ শুধুমাত্র ডেটা: গ্রহণ করুন;
proto sctp খণ্ড-টাইপ যে কোনো (INIT INIT_ACK) ACCEPT;
proto sctp খণ্ড-টাইপস সব (হার্টবিট) গ্রহণ করুন;

বৈধ খণ্ড প্রকারের তালিকা পেতে "iptables -p sctp "-h"" ব্যবহার করুন।

সেট একটি সেটের বিপরীতে উৎস বা গন্তব্য IP/Port/MAC চেক করে।

mod সেট সেট badguys src ড্রপ;

দেখাhttp://ipset.netfilter.org/> আরো তথ্যের জন্য।

অবস্থা সংযোগ ট্র্যাকিং অবস্থা পরীক্ষা করে।

মোড স্টেট স্টেট ইনভ্যালিড ড্রপ;
mod রাজ্য রাষ্ট্র (প্রতিষ্ঠিত সম্পর্কিত) গ্রহণ;

বিস্তারিত জানার জন্য "iptables -m state -h" টাইপ করুন।

পরিসংখ্যাত
এর উত্তরসূরি n তম এবং এলোমেলো, বর্তমানে অনথিভুক্ত iptables- র(8) ম্যান পেজ।

mod পরিসংখ্যান মোড র্যান্ডম সম্ভাব্যতা 0.8 স্বীকার করুন;
mod পরিসংখ্যান মোড nth প্রতি 5 প্যাকেট 0 ড্রপ;

স্ট্রিং একটি স্ট্রিং মেলে।

mod স্ট্রিং স্ট্রিং "foo বার" ACCEPT;
64 থেকে 128 হেক্স-স্ট্রিং "deadbeef" ACCEPT পর্যন্ত mod স্ট্রিং algo kmp;

TCP TCP নির্দিষ্ট বৈশিষ্ট্য পরীক্ষা করে। আপনি যখন ব্যবহার করেন তখন এই মডিউলটি স্বয়ংক্রিয়ভাবে লোড হয়
"প্রটোকল টিসিপি"।

প্রোটো টিসিপি স্পোর্ট 1234;
প্রোটো টিসিপি ডিপোর্ট 2345;
proto tcp tcp-পতাকা (SYN ACK) SYN;
প্রোটো টিসিপি টিসিপি-পতাকা! (SYN ACK) SYN;
proto tcp tcp-flags ALL (RST ACK);
proto tcp syn;
proto tcp tcp- বিকল্প 2;
প্রোটো টিসিপি এমএসএস 512;

বিস্তারিত জানার জন্য "iptables -p tcp -h" টাইপ করুন।

tcpmss একটি SYN বা SYN/ACK প্যাকেটের TCP MSS ক্ষেত্র পরীক্ষা করুন।

mod tcpmss mss 123 স্বীকার করুন;
mod tcpmss mss 234:567 স্বীকার করুন;

সময় একটি প্যাকেট আসার সময় প্রদত্ত সীমার মধ্যে আছে কিনা তা পরীক্ষা করুন।

মোড টাইম টাইমস্টার্ট 12:00;
মোড টাইম টাইমস্টপ 13:30;
আধুনিক সময়ের দিন (সোম বুধ শুক্র);
mod time datestart 2005:01:01;
মোড টাইম ডেটস্টার্ট 2005:01:01:23:59:59;
mod time datestop 2005:04:01;
মোড টাইম মাসডে (30 31);
মোড সময় সপ্তাহের দিন (বুধ বৃহস্পতি);
মোড টাইম টাইমস্টার্ট 12:00 ইউটিসি;
মোড টাইম টাইমস্টার্ট 12:00 localtz;

বিস্তারিত জানার জন্য "iptables -m time -h" টাইপ করুন।

টোস্ট নির্দিষ্ট TOS-মানে একটি প্যাকেট মেলে।

mod tos tos minimize-Cost ACCEPT;
mod tos tos !সাধারণ-পরিষেবা গ্রহণ করুন;

বিস্তারিত জানার জন্য "iptables -m tos -h" টাইপ করুন।

আংশিকভাবে আইপি হেডারে ttl (লাইভ করার সময়) ফিল্ডের সাথে মেলে।

mod ttl ttl-eq 12; # ttl সমান
mod ttl ttl-gt 10; # ttl এর থেকে বড়
mod ttl ttl-lt 16; # ttl এর থেকে কম

u32 প্যাকেট থেকে কাঁচা তথ্য তুলনা. আপনি একটি ফার্মে একাধিক ফিল্টার নির্দিষ্ট করতে পারেন
তালিকা এগুলি একাধিক নিয়মে প্রসারিত হয় না।

mod u32 u32 '6&0xFF=1' স্বীকার করুন;
mod u32 u32 ('27&0x8f=7' '31=0x527c4833') ড্রপ;

অপবিত্র বিকৃত বা অস্বাভাবিক বলে মনে হয় এমন প্যাকেটগুলি মেলে৷ এই ম্যাচ আর নেই
প্যারামিটার।

iptables- র লক্ষ্য মডিউল
নিম্নলিখিত অতিরিক্ত লক্ষ্যগুলি ফার্মে উপলব্ধ, যদি আপনি সেগুলি সক্ষম করেন৷
আপনার কার্নেল:

শ্রেণীবদ্ধ করুন
CBQ ক্লাস সেট করুন।

শ্রেণীবদ্ধ সেট-শ্রেণী 3:50;

CLUSTERIP
নোডগুলির একটি সাধারণ ক্লাস্টার কনফিগার করুন যা একটি নির্দিষ্ট IP এবং MAC ঠিকানা ভাগ করে।
সংযোগগুলি নোডগুলির মধ্যে স্থিতিশীলভাবে বিতরণ করা হয়।

CLUSTERIP নতুন হ্যাশমোড সোর্সিপ ক্লাস্টারম্যাক 00:12:34:45:67:89
মোট-নোড 4 স্থানীয়-নোড 2 হ্যাশ-ইনিট 12345;

কনমার্ক
একটি সংযোগের সাথে যুক্ত নেটফিল্টার মার্ক মান সেট করে।

CONNMARK সেট-মার্ক 42;
CONNMARK সংরক্ষণ-চিহ্ন;
CONNMARK পুনরুদ্ধার-চিহ্ন;
CONNMARK সেভ-মার্ক মাস্ক 0x7fff;
CONNMARK রিস্টোর-মার্ক মাস্ক 0x8000;

কনসেকমার্ক
এই মডিউলটি প্যাকেট থেকে সংযোগে নিরাপত্তা চিহ্ন কপি করে (যদি লেবেল না থাকে),
এবং সংযোগ থেকে প্যাকেটে ফিরে (এছাড়াও শুধুমাত্র যদি লেবেল না থাকে)। সাধারণত ব্যবহৃত হয়
SECMARK এর সাথে একত্রে, এটি শুধুমাত্র ম্যাঙ্গেল টেবিলে বৈধ।

CONNSECMARK সংরক্ষণ;
CONNSECMARK পুনরুদ্ধার;

ডিএনএটি থেকে [আইপি-ঠিকানা|আইপি-রেঞ্জ|আইপি-পোর্ট-রেঞ্জ]
প্যাকেটের গন্তব্য ঠিকানা পরিবর্তন করুন।

DNAT থেকে 10.0.0.4;
DNAT থেকে 10.0.0.4:80;
DNAT থেকে 10.0.0.4:1024-2048;
DNAT থেকে 10.0.1.1-10.0.1.20;

ইসিএন এই লক্ষ্যটি বেছে বেছে পরিচিত ECN ব্ল্যাকহোলের চারপাশে কাজ করার অনুমতি দেয়। এটা শুধুমাত্র পারে
ম্যাঙ্গেল টেবিলে ব্যবহার করা হবে।

ECN ecn-tcp-রিমুভ;

HL IPv6 Hop Limit ক্ষেত্র পরিবর্তন করুন (শুধুমাত্র ip6/mangle)।

এইচএল এইচএল-সেট 5;
HL hl-ডিসেম্বর 2;
HL hl-inc 1;

IPV4OPTSSTRIP
একটি প্যাকেট থেকে সমস্ত আইপি বিকল্প ফালান। এই মডিউল কোন বিকল্প গ্রহণ করে না.

IPV4OPTSSTRIP;

লগ ইন কার্নেল লগে এই নিয়মের সাথে মেলে এমন সমস্ত প্যাকেট লগ করুন। লগ সঙ্গে সতর্ক থাকুন
বন্যা. মনে রাখবেন এটি একটি "নন-টার্মিনেটিং টার্গেট", অর্থাৎ ট্রাভার্সাল নিয়ম
পরবর্তী নিয়মে চলতে থাকে।

LOG log-level warning log-prefix "এটি দেখুন: ";
LOG log-tcp-sequence log-tcp-options;
LOG log-ip-options;

মার্ক প্যাকেটের জন্য নেটফিল্টার চিহ্ন ক্ষেত্র সেট করে (32 এবং এর মধ্যে একটি 0 বিট পূর্ণসংখ্যা
4294967295):

মার্ক সেট-মার্ক 42;
মার্ক সেট-এক্সমার্ক 7/3;
মার্ক এবং-মার্ক 31;
মার্ক বা-মার্ক 1;
মার্ক xor-মার্ক 12;

মাস্কেরেড
মাশকারেড ম্যাচিং প্যাকেট। ঐচ্ছিকভাবে এর জন্য একটি পোর্ট বা পোর্ট-রেঞ্জ দ্বারা অনুসরণ করা হয়
iptables. "123", "123-456" বা "123:456" হিসাবে উল্লেখ করুন। পোর্ট পরিসীমা পরামিতি
স্থানীয় পোর্ট মাস্করেড সংযোগগুলি কি থেকে উৎপন্ন হওয়া উচিত তা নির্দিষ্ট করে।

মাস্কেরেড;
মাস্কেরেড টু পোর্ট 1234:2345;
মাস্কেরেড টু পোর্ট 1234:2345 এলোমেলো;

MIRROR পরীক্ষামূলক প্রদর্শনের লক্ষ্য যা উৎস এবং গন্তব্য ক্ষেত্রগুলিকে উল্টে দেয়
আইপি হেডারে।

আয়না;

নেটম্যাপ একটি সম্পূর্ণ নেটওয়ার্ককে অন্য নেটওয়ার্কে ম্যাপ করুন৷ NAT টেবিল।

NETMAP to 192.168.2.0/24;

কোন খোঁজ নেই সেই নিয়মের সাথে মিলে যাওয়া সমস্ত প্যাকেটের জন্য সংযোগ ট্র্যাকিং অক্ষম করুন৷

proto tcp dport (135:139 445) NOTRACK;

NFLOG নেটলিংকের মাধ্যমে প্যাকেটগুলি লগ করুন; এই উত্তরসূরি ULOG.

NFLOG nflog-group 5 nflog-প্রিফিক্স "এটি দেখুন: ";
NFLOG nflog-পরিসীমা 256;
NFLOG nflog-থ্রেশহোল্ড 10;

NFQUEUE ইউজারস্পেস সারিবদ্ধ করার জন্য nfnetlink_queue কার্নেল সমর্থন প্রয়োজন।

proto tcp dport ftp NFQUEUE সারি-সংখ্যা 20;

কিউ ইউজারস্পেস কিউইং, এর পূর্বসূরী NFQUEUE. সমস্ত প্যাকেট 0 সারিতে যায়।

proto tcp dport ftp QUEUE;

রিডাইরেক্ট করুন পোর্ট [বন্দর]
স্বচ্ছ প্রক্সি করা: মেশিনে প্যাকেটের গন্তব্য আইপি পরিবর্তন করুন
নিজেই।

proto tcp dport http রিডাইরেক্ট টু পোর্ট 3128;
proto tcp dport http রিডাইরেক্ট টু পোর্ট 3128 র্যান্ডম;

একই SNAT-এর অনুরূপ, কিন্তু একটি ক্লায়েন্টকে একই উৎসের আইপি-তে ম্যাপ করা হয়
সংযোগ।

একই থেকে 1.2.3.4-1.2.3.7;
একই 1.2.3.8-1.2.3.15 nodst;
1.2.3.16-1.2.3.31 এলোমেলোভাবে একই;

সেকমার্ক এটি দ্বারা ব্যবহারের জন্য প্যাকেটের সাথে সম্পর্কিত নিরাপত্তা চিহ্ন মান সেট করতে ব্যবহৃত হয়
নিরাপত্তা সাবসিস্টেম যেমন SELinux। এটি শুধুমাত্র ম্যাঙ্গেল টেবিলে বৈধ।

SECMARK selctx "system_u:object_r:httpd_packet_t:s0";

সেট [অ্যাড-সেট|ডেল-সেট] [নাম ঠিক কর] [পতাকা(গুলি)]
নির্দিষ্ট সেটে আইপি যোগ করুন। দেখাhttp://ipset.netfilter.org/>

proto icmp icmp-টাইপ ইকো-রিকোয়েস্ট SET অ্যাড-সেট ব্যাডগুইস src;

SNAT থেকে [আইপি-ঠিকানা|আইপি-রেঞ্জ|আইপি-পোর্ট-রেঞ্জ]
প্যাকেটের উৎস ঠিকানা পরিবর্তন করুন।

SNAT থেকে 1.2.3.4;
SNAT থেকে 1.2.3.4:20000-30000;
SNAT থেকে 1.2.3.4 এলোমেলো;

TCPMSS TCP SYN প্যাকেটের MSS মান পরিবর্তন করুন।

TCPMSS সেট-mss 1400;
TCPMSS clamp-mss-to-pmtu;

টিওএস সেট-টাস [মান]
এই মানটিতে tcp প্যাকেজ প্রকার পরিষেবা বিট সেট করুন। এই দ্বারা ব্যবহার করা হবে
যাই হোক না কেন ট্রাফিক সময়সূচী ইচ্ছুক, বেশিরভাগই আপনার নিজের লিনাক্স মেশিন, কিন্তু হতে পারে
আরো মূল টস-বিটগুলি এই মান দ্বারা ফাঁকা এবং ওভাররাইট করা হয়।

TOS সেট-টস ম্যাক্সিমাইজ-থ্রুপুট;
TOS এবং-tos 7;
TOS or-tos 1;
TOS xor-tos 4;

বিস্তারিত জানার জন্য "iptables -j TOS -h" টাইপ করুন।

টিটিএল TTL হেডার ক্ষেত্র পরিবর্তন করুন।

TTL ttl-সেট 16;
TTL ttl-ডিসেম্বর 1; # 1 দ্বারা হ্রাস
TTL ttl-inc 4; # 4 দ্বারা বৃদ্ধি

ULOG একটি ইউজারস্পেস প্রোগ্রামে প্যাকেট লগ করুন।

ULOG ulog-nlgroup 5 ulog-prefix "এটি দেখুন: ";
ULOG ulog-cprange 256;
ULOG ulog-qthreshold 10;

অন্যান্য DOMAINS


সংস্করণ 2.0 থেকে, ফার্ম সমর্থন করে না শুধুমাত্র ip এবং ip6কিন্তু এছাড়াও Arp (ARP টেবিল) এবং eb
(ইথারনেট ব্রিজিং টেবিল)। ধারণাগুলি অনুরূপ iptables- র.

arptables কীওয়ার্ড
উৎস-আইপি, গন্তব্য-আইপি
উৎস বা গন্তব্য IPv4 ঠিকানার সাথে মেলে। একই রকম সদর এবং বাবা মধ্যে ip
ডোমেইন.

উৎস-ম্যাক, গন্তব্য-ম্যাক
উৎস বা গন্তব্য MAC ঠিকানার সাথে মেলে।

ইন্টারফেস, বাইরের মুখ
ইনপুট এবং আউটপুট ইন্টারফেস।

h-দৈর্ঘ্য
প্যাকেটের হার্ডওয়্যার দৈর্ঘ্য।

চেইন ইনপুট h-দৈর্ঘ্য 64 একসেপ্ট;

opcode অপারেশন কোড, বিস্তারিত জানার জন্য দেখুন iptables- র(8).

opcode 9 স্বীকার করুন;

h-টাইপ হার্ডওয়্যার প্রকার।

h-টাইপ 1 গ্রহণ করুন;

প্রোটো-টাইপ
প্রোটোকল প্রকার।

প্রোটো-টাইপ 0x800 ACCEPT;

ম্যাংলিং
কীওয়ার্ড mangle-ip-s, mangle-ip-d, mangle-mac-s, mangle-mac-d, mangle- টার্গেট
ARP ম্যাঙ্গলিং এর জন্য ব্যবহার করা যেতে পারে। দেখা iptables- র(8) বিস্তারিত জানার জন্য।

ebtables কীওয়ার্ড
প্রোটো ফ্রেম তৈরি করা প্রোটোকলের সাথে মেলে, যেমন IPv4 or পিপিপি. একটি তালিকার জন্য, দেখুন
/etc/ethertypes.

ইন্টারফেস, বাইরের মুখ
শারীরিক ইনপুট এবং আউটপুট ইন্টারফেস।

যৌক্তিক-ইন, যৌক্তিক-আউট
লজিক্যাল ব্রিজ ইন্টারফেস।

সদর, বাবা
উৎস বা গন্তব্য MAC ঠিকানার সাথে মেলে।

ম্যাচ মডিউল
নিম্নলিখিত ম্যাচ মডিউলগুলি সমর্থিত: 802.3, arp, ip, mark_m, pktype, stp,
vlan, লগ।

লক্ষ্য এক্সটেনশন
নিম্নলিখিত টার্গেট এক্সটেনশনগুলি সমর্থিত: arpreply, dnat, মার্ক, পুনঃনির্দেশ,
snat

অনুগ্রহ করে মনে রাখবেন যে এর মধ্যে বিরোধ রয়েছে --চিহ্ন থেকে mark_m ম্যাচ মডিউল
এবং -j ছাপ. যেহেতু উভয়ই ফার্ম কীওয়ার্ড দিয়ে প্রয়োগ করা হবে ছাপ, আমরা
লক্ষ্যের নাম বড় হাতের অক্ষরে লিখে এটি সমাধান করার সিদ্ধান্ত নিয়েছে, অন্যটির মতো
ডোমেইন নিম্নলিখিত উদাহরণ 1 থেকে 2 চিহ্ন পুনর্লিখন করে:

মার্ক 1 মার্ক 2;

উন্নত বৈশিষ্ট্য


ভেরিয়েবল
জটিল ফায়ারওয়াল ফাইলে, ভেরিয়েবল ব্যবহার করা সহায়ক, যেমন একটি নেটওয়ার্ক দিতে
ইন্টারফেস একটি অর্থপূর্ণ নাম।

ভেরিয়েবল সেট করতে, লিখুন:

@def $DEV_INTERNET = eth0;
@def $PORTS = (http ftp);
@def $MORE_PORTS = ($PORTS 8080);

আসল ফার্ম কোডে, ভেরিয়েবলগুলি অন্যান্য কীওয়ার্ড প্যারামিটারের মতো ব্যবহার করা হয়:

চেইন INPUT ইন্টারফেস $DEV_INTERNET proto tcp dport $MORE_PORTS ACCEPT;

মনে রাখবেন ভেরিয়েবলগুলি শুধুমাত্র কীওয়ার্ড প্যারামিটারে ব্যবহার করা যেতে পারে ("192.168.1.1", "http"); তারা
"প্রোটো" বা "ইন্টারফেস" এর মত ফার্ম কীওয়ার্ড থাকতে পারে না।

ভেরিয়েবল শুধুমাত্র বর্তমান ব্লকে বৈধ:

@def $DEV_INTERNET = eth1;
চেইন ইনপুট {
প্রোটো টিসিপি {
@def $DEV_INTERNET = ppp0;
ইন্টারফেস $DEV_INTERNET dport http স্বীকার করুন;
}
ইন্টারফেস $DEV_INTERNET DROP;
}

প্রসারিত করা হবে:

চেইন ইনপুট {
প্রোটো টিসিপি {
ইন্টারফেস ppp0 dport http ACCEPT;
}
ইন্টারফেস eth1 DROP;
}

"def $DEV_INTERNET = ppp0" শুধুমাত্র "proto tcp" ব্লকে বৈধ; অভিভাবক ব্লক
এখনও "সেট $DEV_INTERNET = eth1" জানে৷

অন্তর্ভুক্ত ফাইলগুলি বিশেষ - একটি অন্তর্ভুক্ত ফাইলে ঘোষিত ভেরিয়েবলগুলি এখনও উপলব্ধ রয়েছে৷
কলিং ব্লক। এটি দরকারী যখন আপনি একটি ফাইল অন্তর্ভুক্ত করেন যা শুধুমাত্র ভেরিয়েবল ঘোষণা করে।

স্বয়ংক্রিয় ভেরিয়েবল
কিছু ভেরিয়েবল ফার্ম দ্বারা অভ্যন্তরীণভাবে সেট করা হয়। ফার্ম স্ক্রিপ্ট অন্য যে কোন মত ব্যবহার করতে পারেন
পরিবর্তনশীল।

$FILENAME
ডিরেক্টরি ফার্মের সাথে সম্পর্কিত কনফিগারেশন ফাইলের নাম শুরু হয়েছিল।

$FILEBNAME
কনফিগারেশন ফাইলের মূল নাম।

$DIRNAME
কনফিগারেশন ফাইলের ডিরেক্টরি।

$DOMAIN বর্তমান ডোমেইন। অন্যতম ip, ip6, Arp, eb.

$টেবিল বর্তমান নেটফিল্টার টেবিল।

$চেইন বর্তমান নেটফিল্টার চেইন।

$LINE বর্তমান স্ক্রিপ্টের লাইন। এটি এই মত ব্যবহার করা যেতে পারে:

@def &log($msg) = {
LOG লগ-প্রিফিক্স "রুল=$msg:$LINE";
}
.
.
.
&log("লগ বার্তা");

কার্যাবলী
ফাংশনগুলি ভেরিয়েবলের অনুরূপ, তাদের প্যারামিটার থাকতে পারে এবং তারা প্রদান করে
ফার্ম কমান্ড, মান নয়।

@def &FOO() = প্রোটো (tcp udp) dport ডোমেইন;
&FOO() স্বীকার করুন;

@def &TCP_TUNNEL($port, $dest) = {
টেবিল ফিল্টার চেইন ফরওয়ার্ড ইন্টারফেস ppp0 proto tcp dport $port daddr $dest outerface eth0 ACCEPT;
টেবিল ন্যাট চেইন প্রিরুটিং ইন্টারফেস ppp0 proto tcp dport $port daddr 1.2.3.4 DNAT থেকে $dest;
}

&TCP_TUNNEL(http, 192.168.1.33);
&TCP_TUNNEL(ftp, 192.168.1.30);
&TCP_TUNNEL((ssh smtp), 192.168.1.2);

একটি ফাংশন কল যাতে একটি ব্লক থাকে (যেমন '{...}') একটি ফার্মের শেষ কমান্ড হতে হবে
নিয়ম, অর্থাৎ এটি অবশ্যই ';' দ্বারা অনুসরণ করতে হবে। দ্য '&FOO()' উদাহরণে একটি ব্লক নেই, এইভাবে
কল করার পর আপনি 'ACCEPT' লিখতে পারেন। এটি এড়ানোর জন্য, আপনি কীওয়ার্ডগুলি পুনরায় সাজাতে পারেন:

@def &IPSEC() = { প্রোটো (esp ah); প্রোটো ইউডিপি ডিপোর্ট 500; }
চেইন ইনপুট গ্রহণ করুন &IPSEC();

ব্যাকটিক্স
ব্যাকটিক্সের সাথে, আপনি একটি বহিরাগত কমান্ডের আউটপুট ব্যবহার করতে পারেন:

@def $DNSSERVERS = `grep নেমসার্ভার /etc/resolv.conf | awk '{প্রিন্ট $2}'`;
চেইন ইনপুট প্রোটো tcp saddr $DNSSERVERS ACCEPT;

কমান্ডটি শেল দিয়ে কার্যকর করা হয় (/ বিন / SH), ঠিক পার্লে ব্যাকটিক্সের মতো। ফার্ম করে
এখানে কোন পরিবর্তনশীল সম্প্রসারণ করবেন না।

আউটপুট তারপর টোকেনাইজ করা হয়, এবং একটি ফার্ম তালিকা (অ্যারে) হিসাবে সংরক্ষণ করা হয়। লাইনগুলি '#' দিয়ে শুরু
উপেক্ষা করা হয়; অন্য লাইনে হোয়াইটস্পেস দ্বারা বিভক্ত যেকোনো সংখ্যক মান থাকতে পারে।

সহ
সার্জারির @অন্তর্ভুক্ত কীওয়ার্ড আপনাকে বহিরাগত ফাইলগুলি অন্তর্ভুক্ত করতে দেয়:

@include 'vars.ferm';

ফাইলের নাম কলিং ফাইলের সাথে আপেক্ষিক, যেমন থেকে অন্তর্ভুক্ত করার সময়
/etc/ferm/ferm.conf, উপরের বিবৃতি অন্তর্ভুক্ত /etc/ferm/vars.ferm. ভেরিয়েবল এবং
একটি অন্তর্ভুক্ত ফাইলে ঘোষিত ফাংশন এখনও কলিং ফাইলে উপলব্ধ।

অন্তর্ভুক্ত করা একটি ব্লকের মধ্যে কাজ করে:

চেইন ইনপুট {
@include 'input.ferm';
}

আপনি যদি একটি ডিরেক্টরি নির্দিষ্ট করেন (একটি '/' এর পিছনে), এই ডিরেক্টরির সমস্ত ফাইল
অন্তর্ভুক্ত, বর্ণানুক্রমিকভাবে সাজানো:

@include 'ferm.d/';

একটি অনুগামী পাইপ প্রতীক সহ, ফার্ম একটি শেল কমান্ড চালায় এবং এর আউটপুট পার্স করে:

@অন্তর্ভুক্ত '/root/generate_ferm_rules.sh $HOSTNAME|'

Conditionals কে
মূলশব্দ @if একটি শর্তাধীন অভিব্যক্তি প্রবর্তন করে:

@if $condition ড্রপ;

পার্লের মতোই একটি মানকে সত্য মূল্যায়ন করা হয়: শূন্য, খালি তালিকা, খালি স্ট্রিং মিথ্যা,
বাকি সব সত্য। সত্য মানগুলির উদাহরণ:

(ab); 1; 'foo'; (0 0)

মিথ্যা মানগুলির উদাহরণ:

(); 0; '0'; '

এছাড়াও আছে @অন্য:

@if $condition ড্রপ; @অন্যথা প্রত্যাখ্যান করুন;

এর আগে সেমিকোলনটি নোট করুন @অন্য.

এর পরে কোঁকড়া ধনুর্বন্ধনী ব্যবহার করা সম্ভব @if or @অন্য:

@if $condition {
মার্ক সেট-মার্ক 2;
প্রত্যাবর্তন;
} @আরেক {
মার্ক সেট-মার্ক 3;
}

যেহেতু ক্লোজিং কোঁকড়া বন্ধনীটিও কমান্ডটি শেষ করে, সেমিকোলনের প্রয়োজন নেই।

এমন কিছু নেই @এলসিফব্যবহার করুন @অন্য @if পরিবর্তে.

উদাহরণ:

@def $have_ipv6 = `test -f /proc/net/ip6_tables_names && echo 1 || প্রতিধ্বনি;
@if $have_ipv6 {
ডোমেইন ip6 {
#...
}
}

আঙ্গুলসমূহ
কাস্টম কমান্ড চালানোর জন্য, আপনি হুক ইনস্টল করতে পারেন:

@হুক প্রি "ইকো 0 >/proc/sys/net/ipv4/conf/eth0/ফরওয়ার্ডিং";
@হুক পোস্ট "ইকো 1 >/proc/sys/net/ipv4/conf/eth0/ফরওয়ার্ডিং";
@হুক ফ্লাশ "ইকো 0 >/proc/sys/net/ipv4/conf/eth0/ফরওয়ার্ডিং";

নির্দিষ্ট কমান্ড শেল ব্যবহার করে নির্বাহ করা হয়। "pre" মানে আগে কমান্ড চালান
ফায়ারওয়াল নিয়ম প্রয়োগ করা, এবং "পোস্ট" মানে পরে কমান্ড চালান। "ফ্লাশ" হুক
ফার্ম ফায়ারওয়াল নিয়মগুলি ফ্লাশ করার পরে চালানো হয় (বিকল্প --ফ্লাশ)। আপনি যে কোনো ইনস্টল করতে পারেন
হুক সংখ্যা

বিল্ট-ইন ফাংশন


বেশ কিছু অন্তর্নির্মিত ফাংশন আছে যা আপনার কাজে লাগতে পারে।

@eq(a,b)
সমতার জন্য দুটি মান পরীক্ষা করে। উদাহরণ:

@if @eq($DOMAIN, ip6) ড্রপ;

@ne(a,b)
@eq এর মতো, এটি অ-সমতার জন্য পরীক্ষা করে।

@না(x)
একটি বুলিয়ান মান অস্বীকার করে।

@resolve((হোস্টনাম1 হোস্টনাম 2 ...), [প্রকার])
সাধারণত, হোস্টের নামগুলি iptables দ্বারা সমাধান করা হয়। ফার্মকে হোস্টের নামগুলি সমাধান করতে দিতে, ব্যবহার করুন
ফাংশন @resolve:

saddr @resolve(my.host.foo) প্রোটো tcp dport ssh গ্রহন করুন;
saddr @resolve((another.host.foo third.host.foo)) proto tcp dport openvpn ACCEPT;
daddr @resolve(ipv6.google.com, AAAA) proto tcp dport http ACCEPT;

দ্বিতীয় লাইনে ডবল বন্ধনী লক্ষ্য করুন: একটি ফার্ম তালিকা তৈরির জন্য অভ্যন্তরীণ জোড়া,
এবং বাইরের জোড়া ফাংশন পরামিতি সীমাবদ্ধকারী হিসাবে।

দ্বিতীয় প্যারামিটারটি ঐচ্ছিক, এবং DNS রেকর্ডের ধরন নির্দিষ্ট করে। ডিফল্ট হল "A"।

ফায়ারওয়াল কনফিগারেশনে সমাধান করা হোস্ট নামগুলির সাথে সতর্ক থাকুন। DNS অনুরোধ ব্লক করতে পারে
দীর্ঘ সময়ের জন্য ফায়ারওয়াল কনফিগারেশন, মেশিনটিকে দুর্বল করে রাখে, অথবা তারা ব্যর্থ হতে পারে।

@বিড়াল(ক, b, ...)
সমস্ত পরামিতি এক স্ট্রিং এ সংযুক্ত করুন।

@substr(অভিব্যক্তি, অফসেট, দৈর্ঘ্য)
এক্সপ্রেশন থেকে একটি সাবস্ট্রিং বের করে এবং ফেরত দেয়। প্রথম অক্ষর অফসেট 0. যদি
অফসেট নেতিবাচক, স্ট্রিংয়ের শেষ থেকে অনেক দূরে শুরু হয়।

@দৈর্ঘ্য(অভিব্যক্তি)
EXPR এর মানের অক্ষরের দৈর্ঘ্য প্রদান করে।

@বেসনাম(পথ)
একটি প্রদত্ত পথের জন্য ফাইলের ভিত্তি নামটি ফেরত দিন (ফাইল::বিশেষ::স্প্লিটপথ)।

@dirname(পথ)
একটি প্রদত্ত পথের জন্য শেষ ডিরেক্টরির নামটি ফেরত দিন, ধরে নিন শেষ উপাদানটি a
ফাইলের নাম (ফাইল::বিশেষ::স্প্লিটপথ)।

@ipfilter(তালিকা)
স্পষ্টতই বর্তমান ডোমেনের সাথে মেলে না এমন IP ঠিকানাগুলিকে ফিল্টার করে। এটাই
IPv4 এবং IPv6 এর জন্য সাধারণ ভেরিয়েবল এবং নিয়ম তৈরি করতে দরকারী:

@def $TRUSTED_HOSTS = (192.168.0.40 2001:abcd:ef::40);

ডোমেইন (ip ip6) চেইন ইনপুট {
saddr @ipfilter($TRUSTED_HOSTS) প্রোটো tcp dport ssh স্বীকার করুন;
}

রান্না প্রণালী


সার্জারির ./examples/ ডিরেক্টরিতে অনেকগুলি ফার্ম কনফিগারেশন রয়েছে যা শুরু করতে ব্যবহার করা যেতে পারে
একটি নতুন ফায়ারওয়াল। এই বিভাগে আরও নমুনা, রেসিপি এবং কৌশল রয়েছে।

সহজ বন্দর ফরওয়ার্ডিং
ফার্ম ফাংশন রুটিন কাজ দ্রুত এবং সহজ করে তোলে:

@def &FORWARD_TCP($proto, $port, $dest) = {
টেবিল ফিল্টার চেইন ফরওয়ার্ড ইন্টারফেস $DEV_WORLD আউটারফেস $DEV_DMZ daddr $dest proto $proto dport $port ACCEPT;
টেবিল ন্যাট চেইন প্রিরুটিং ইন্টারফেস $DEV_WORLD daddr $HOST_STATIC proto $proto dport $port DNAT থেকে $dest;
}

&FORWARD_TCP(tcp, http, 192.168.1.2);
&FORWARD_TCP(tcp, smtp, 192.168.1.3);
&FORWARD_TCP((tcp udp), ডোমেইন, 192.168.1.4);

দূরবর্তী ফার্ম
টার্গেট মেশিন চালাতে না পারলে ফার্ম কিছু কারণে (সম্ভবত একটি এমবেডেড ডিভাইস
পার্ল ছাড়া), আপনি সম্পাদনা করতে পারেন ফার্ম অন্য কম্পিউটারে কনফিগারেশন ফাইল এবং যাক ফার্ম
সেখানে একটি শেল স্ক্রিপ্ট তৈরি করুন।

OpenWRT এর উদাহরণ:

ferm --remote --shell mywrt/ferm.conf >mywrt/firewall.user
chmod +x mywrt/firewall.user
scp mywrt/firewall.user mywrt.local.net:/ ইত্যাদি /
ssh mywrt.local.net /etc/firewall.user

বিকল্প


--noexec মৃত্যুদন্ড কার্যকর করবেন না iptables- র(8) কমান্ড, কিন্তু পরিবর্তে এড়িয়ে যান. এইভাবে আপনি পারেন
আপনার ডেটা পার্স করুন, ব্যবহার করুন --লাইন আউটপুট দেখতে।

--ফ্লাশ ফায়ারওয়াল নিয়মগুলি সাফ করে এবং সমস্ত চেইনের নীতিকে ACCEPT-এ সেট করে৷ ফার্ম
কোন ডোমেন এবং টেবিলগুলি তা নির্ধারণ করতে এটির জন্য একটি কনফিগারেশন ফাইলের প্রয়োজন৷
আক্রান্ত.

--লাইন ফায়ারওয়াল লাইনগুলি দেখান যা নিয়মগুলি থেকে তৈরি হয়েছিল। তাদের দেখানো হবে
সেগুলি কার্যকর করার ঠিক আগে, তাই যদি আপনি এর থেকে ত্রুটি বার্তা পান iptables- র(8)
ইত্যাদি, আপনি দেখতে পারেন কোন নিয়মের কারণে ত্রুটি হয়েছে।

-- ইন্টারেক্টিভ
ফায়ারওয়াল নিয়ম প্রয়োগ করুন এবং নিশ্চিতকরণের জন্য ব্যবহারকারীকে জিজ্ঞাসা করুন। তে প্রত্যাবর্তন করে
পূর্ববর্তী নিয়ম সেট যদি 30 সেকেন্ডের মধ্যে কোন বৈধ ব্যবহারকারী প্রতিক্রিয়া না থাকে (দেখুন
--সময় শেষ) এটি দূরবর্তী ফায়ারওয়াল প্রশাসনের জন্য দরকারী: আপনি পরীক্ষা করতে পারেন
নিজেকে লক আউট ভয় ছাড়া নিয়ম.

--সময় শেষ S If -- ইন্টারেক্টিভ ব্যবহার করা হয়, তারপরে কোন বৈধ ব্যবহারকারীর প্রতিক্রিয়া না থাকলে ফিরে যান
সেকেন্ড এই সংখ্যা পরে. ডিফল্ট 30.

--help উপলব্ধ কমান্ডলাইন বিকল্পগুলির একটি সংক্ষিপ্ত তালিকা দেখান।

--সংস্করণ প্রোগ্রামের সংস্করণ নম্বর দেখায়।

--দ্রুত দ্রুত মোড সক্ষম করুন: ফার্ম একটি উৎপন্ন করে iptables-সংরক্ষণ করুন(8) ফাইল, এবং এটি ইনস্টল করুন
সঙ্গে iptables-পুনরুদ্ধার(8)। এটি অনেক দ্রুত, কারণ ফার্ম কল iptables- র(8)
ডিফল্টরূপে প্রতিটি নিয়মের জন্য একবার।

যেহেতু দ্রুত মোড ডিফল্টরূপে সক্রিয় করা হয়েছে ফার্ম 2.0, এই বিকল্পটি অবমূল্যায়ন করছে।

-- ধীর দ্রুত মোড নিষ্ক্রিয়, যেমন রান iptables- র(8) প্রতিটি নিয়মের জন্য, এবং ব্যবহার করবেন না
iptables-পুনরুদ্ধার(8).

--শেল একটি শেল স্ক্রিপ্ট তৈরি করুন যা কল করে iptables-পুনরুদ্ধার(8) এবং এটি প্রিন্ট করে।
বোঝায় --দ্রুত --রেখা।

--দূরবর্তী একটি দূরবর্তী মেশিনের জন্য নিয়ম তৈরি করুন। বোঝায় --noexec এবং --লাইন. হতে পারে
সংযুক্ত --শেল.

--ডোমেইন {ip|ip6}
শুধুমাত্র নির্দিষ্ট ডোমেইন হ্যান্ডেল. ফার্ম ডোমেইন থাকলে আউটপুট খালি হতে পারে
ইনপুট ফাইলে কনফিগার করা হয়নি।

-- def '$name=value'
কনফিগারেশন ফাইলে সংজ্ঞায়িত একটি ভেরিয়েবল ওভাররাইড করুন।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে ফার্ম ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad




×
ভি .আই. পি  বিজ্ঞাপন
❤️এখানে কেনাকাটা করুন, বুক করুন, অথবা কিনুন — বিনামূল্যে, পরিষেবাগুলি বিনামূল্যে রাখতে সাহায্য করে।