Nftables টিউটোরিয়াল

Nftables Ti Utoriyala



এই টিউটোরিয়ালটি ব্যাখ্যা করে কিভাবে Nftables Linux ফায়ারওয়ালের সাথে কাজ করতে হয়। এই বিষয়বস্তু লিনাক্স অভিজ্ঞ এবং নতুন ব্যবহারকারীদের জন্য অপ্টিমাইজ করা হয়েছে।

Nftables হল Linux কার্নেলের একটি উপাদান যা ফায়ারওয়াল কার্যকারিতা প্রদান করে। এটি Iptables এর প্রতিস্থাপন।







এই টিউটোরিয়ালটি পড়ার পরে, আপনি Nftables এর নিয়মগুলি বুঝতে পারবেন এবং আপনি আপনার ফায়ারওয়াল তৈরি করতে সক্ষম হবেন। আপনার Iptables সম্পর্কে পূর্ববর্তী জ্ঞানের প্রয়োজন নেই।



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



Nftables দিয়ে শুরু করা

শুরু করার আগে, নিম্নলিখিত উদাহরণের উপর ভিত্তি করে আপনার প্রথম Nftables নিয়মগুলি টাইপ করা শুরু করতে nano বা vi-এর মতো একটি পাঠ্য সম্পাদক ব্যবহার করে একটি ফাইল তৈরি করুন এবং খুলুন। কপি-পেস্ট করবেন না; সবকিছু টাইপ করুন।





ন্যানো firewall.nft

এই টিউটোরিয়ালের উদাহরণটি বেশ সহজ এবং একটি সীমাবদ্ধ ফায়ারওয়াল দেখায় যেখানে লুপব্যাক এবং নির্দিষ্ট পোর্ট ব্যতীত সমস্ত IPv4 ট্র্যাফিক বাদ দেওয়া হয়।



পূর্ববর্তী স্ক্রিনশটে, আমি আমার স্থানীয় নেটওয়ার্ক (192.168.0.0/16) LinuxHintNet হিসাবে সংজ্ঞায়িত করার জন্য প্রথম লাইনটি ব্যবহার করেছি।

LinuxHintNet = 192.168.0.0 সংজ্ঞায়িত করুন / 16

দ্বিতীয় লাইনে, আমি পোর্টের একটি গ্রুপ (80,443, এবং 22) সংজ্ঞায়িত করি। আমি এই গ্রুপটিকে AllowPort বলি কারণ আমি তাদের মাধ্যমে ট্রাফিকের অনুমতি দেওয়ার পরিকল্পনা করি৷ AllowPorts একটি স্বেচ্ছাচারী নাম।

AllowPorts সংজ্ঞায়িত করুন = { 80 , 443 , 53 , 22 }

তারপর, আমি একটি টেবিল যোগ করি, যা একটি ধারক বা চেইন এবং নিয়মের গ্রুপ; তাদের উভয় নীচে ব্যাখ্যা করা হয়. টেবিলগুলি নিয়ম এবং চেইনগুলিকে সংগঠিত করতে সহায়তা করে। আমি উদাহরণে টেবিলটিকে 'নিষেধমূলক' বলেছি কারণ এতে একটি সীমাবদ্ধ নীতি রয়েছে এবং এর নাম স্বেচ্ছাচারী৷

টেবিলের নামের আগে আইপি নির্দেশ করে যে que টেবিলের নিয়মগুলি শুধুমাত্র IPv4 ট্র্যাফিকের জন্য প্রয়োগ করা হবে। আপনি IPv4 এবং IPv6 প্রোটোকলগুলিতে নিয়ম প্রয়োগ করতে IP এর পরিবর্তে inet ব্যবহার করতে পারেন। অথবা আপনি শুধুমাত্র IPv6 এর জন্য ip6 দিয়ে IP প্রতিস্থাপন করতে পারেন।

মনে রাখবেন, Restrictive হল একটি নাম যা আমি নির্বিচারে সংজ্ঞায়িত করেছি। আপনি আপনার ইচ্ছামত টেবিলের নাম দিতে পারেন।

আমার ক্ষেত্রে, আমি শুধুমাত্র IPv4-এ নিয়ম প্রয়োগ করি, যেমনটি নীচে দেখানো হয়েছে।

টেবিল যোগ করুন আইপি সীমাবদ্ধ

উভয় প্রোটোকলের জন্য, নিম্নলিখিত ব্যবহার করুন:

টেবিল inet রেস্ট্রিক্টিভ যোগ করুন

তারপরে আমরা প্রথম বেস চেইন যোগ করি, যেটিকে আমি ইচ্ছামত ইনকামিং নাম দিয়েছি কারণ এটি ইনকামিং ট্র্যাফিকের সাথে সম্পর্কিত। যাইহোক, আপনি আপনার ইচ্ছা মত নাম দিতে পারেন।

নিম্নলিখিত বেস চেইন ডিফল্টরূপে সমস্ত আগত ট্র্যাফিক ড্রপ করে:

  • চেইন যোগ করুন আইপি রেস্ট্রিক্টিভ ইনকামিং: এই বিভাগটি আইপিভি 4 এ প্রয়োগ করার জন্য রেস্ট্রিক্টিভ ইনকামিং চেইন যোগ করে।
  • টাইপ ফিল্টার: এটি চেইন টাইপকে ফিল্টার হিসাবে সংজ্ঞায়িত করে কারণ এটি ট্র্যাফিক ফিল্টার করবে। অন্যান্য সম্ভাব্য চেইন প্রকারগুলি হল রুট বা NAT
  • হুক ইনপুট: ইনকামিং প্যাকেট বোঝায়
  • অগ্রাধিকার 0: বেস চেইন অগ্রাধিকার বেস চেইন অর্ডার সংজ্ঞায়িত করে
  • নীতি ড্রপ: ড্রপ নীতি, ডিফল্টরূপে, সমস্ত প্যাকেট বাতিল করে
চেইন যোগ করুন আইপি সীমাবদ্ধ ইনকামিং { প্রকার ফিল্টার হুক ইনপুট অগ্রাধিকার 0 ; পলিসি ড্রপ; }

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

তিনটি বেস চেইনের পরে, আমরা লুপব্যাক ট্র্যাফিকের অনুমতি দেওয়ার জন্য Nftables নিয়মগুলি চালিয়ে যেতে পারি।

আমি লুপব্যাক ইন্টারফেসে ইনকামিং এবং আউটগোয়িং ট্র্যাফিকের জন্য নিম্নলিখিত লাইনগুলি যোগ করি।

নিয়ম যোগ করুন আইপি নিষেধাজ্ঞামূলক ইনকামিং iifname পাল্টা গ্রহণ

নিয়ম যোগ করুন আইপি নিষেধাজ্ঞামূলক ইনকামিং oifname পাল্টা গ্রহণ

এখন, ফাইলের শুরুতে সংজ্ঞায়িত ভেরিয়েবল $AllowPorts-এ অন্তর্ভুক্ত সমস্ত পোর্টের মাধ্যমে বহির্গামী এবং আগত TCP এবং UDP ট্র্যাফিক গ্রহণ করার জন্য আমি চারটি নিয়ম যুক্ত করছি।

নিয়ম যোগ করুন আইপি সীমাবদ্ধ ইনকামিং tcp খেলাধুলা $AllowPorts পাল্টা গ্রহণ

নিয়ম যোগ করুন আইপি সীমাবদ্ধ আউটগোয়িং tcp dport $AllowPorts পাল্টা গ্রহণ

নিয়ম যোগ করুন আইপি সীমাবদ্ধ ইনকামিং ইউডিপি খেলাধুলা $AllowPorts পাল্টা গ্রহণ

নিয়ম যোগ করুন আইপি সীমাবদ্ধ বহির্গামী udp dport $AllowPorts পাল্টা গ্রহণ

আপনি নীচে সম্পূর্ণ স্ক্রিপ্ট দেখতে পারেন.

একবার আপনি আপনার টেবিল, চেইন এবং নিয়ম টাইপ করা শেষ করে, নথিটি বন্ধ করুন এবং পরিবর্তনগুলি সংরক্ষণ করুন।

# প্রথম দুটি লাইনে, আমি আমার স্থানীয় নেটওয়ার্ক (LinuxHintNet) এবং পোর্টের একটি সেট (80,
#443,22) নিচের নিয়মে তাদের মাধ্যমে ট্রাফিক সক্ষম করতে।
LinuxHintNet = 192.168.0.0 সংজ্ঞায়িত করুন / 16
AllowPorts সংজ্ঞায়িত করুন = { 80 , 443 , 53 , 22 }
#আমি একটি নতুন টেবিল ঘোষণা করছি যাতে চেইন এবং নিয়ম থাকবে। আমি এই টেবিলটিকে 'নিষেধমূলক' বলি।
# 'ip' নিয়মগুলি শুধুমাত্র IPv4-এ প্রযোজ্য। IPv6 এর জন্য, শুধুমাত্র 'ip6' ব্যবহার করুন এবং উভয় প্রোটোকলের জন্য 'inet' ব্যবহার করুন।
টেবিল যোগ করুন আইপি সীমাবদ্ধ
# টেবিল তৈরি করার পরে, আমি তিনটি চেইন তৈরি করি, ইনকামিং, রিডাইরেক্ট এবং আউটগোয়িং,
# তাদের নাম নির্বিচারে। তাদের সকলেই ডিফল্টরূপে ইনকামিং, আউটগোয়িং এবং ফরওয়ার্ডিং ট্রাফিক ড্রপ করে।
চেইন যোগ করুন আইপি সীমাবদ্ধ ইনকামিং { প্রকার ফিল্টার হুক ইনপুট অগ্রাধিকার 0 ; পলিসি ড্রপ; }
চেইন যোগ করুন আইপি সীমাবদ্ধ পুনঃনির্দেশ { প্রকার ফিল্টার হুক অগ্রাধিকার অগ্রাধিকার 0 ; পলিসি ড্রপ; }
চেইন যোগ করুন আইপি সীমাবদ্ধ আউটগোয়িং { প্রকার ফিল্টার হুক আউটপুট অগ্রাধিকার 0 ; পলিসি ড্রপ; }
# আমি লুপব্যাক ট্র্যাফিকের অনুমতি দেওয়ার জন্য দুটি নিয়ম প্রয়োগ করি।
নিয়ম যোগ করুন আইপি নিষেধাজ্ঞামূলক ইনকামিং iifname পাল্টা গ্রহণ
নিয়ম যোগ করুন আইপি নিষেধাজ্ঞামূলক ইনকামিং oifname পাল্টা গ্রহণ
# আমি AllowPorts ভেরিয়েবলে সংজ্ঞায়িত পোর্টের মাধ্যমে ট্র্যাফিকের অনুমতি দেওয়ার নিয়ম প্রয়োগ করি।
নিয়ম যোগ করুন আইপি সীমাবদ্ধ ইনকামিং tcp খেলাধুলা $AllowPorts পাল্টা গ্রহণ
নিয়ম যোগ করুন আইপি সীমাবদ্ধ আউটগোয়িং tcp dport $AllowPorts পাল্টা গ্রহণ
নিয়ম যোগ করুন আইপি সীমাবদ্ধ ইনকামিং ইউডিপি খেলাধুলা $AllowPorts পাল্টা গ্রহণ

নিয়ম যোগ করুন আইপি সীমাবদ্ধ বহির্গামী udp dport $AllowPorts পাল্টা গ্রহণ

ফায়ারওয়াল সক্রিয় করতে, নিম্নলিখিত কমান্ডটি চালান:

sudo nft -চ firewall.nft

আপনি নিম্নলিখিত কমান্ডটি চালিয়ে আপনার নিয়মগুলি পরীক্ষা করতে পারেন:

sudo nft তালিকা নিয়ম সেট

এটি একটি মৌলিক সীমাবদ্ধ ফায়ারওয়াল।

উপসংহার:

আপনি দেখতে পাচ্ছেন, Nftables Iptables এর চেয়ে অনেক বেশি বন্ধুত্বপূর্ণ, এবং ব্যবহারকারীরা Iptables থেকে দ্রুত Nftables শিখতে পারে। যেহেতু Iptables বন্ধ করা হচ্ছে, এবং অনেক ডিস্ট্রিবিউশন ডেবিয়ান সহ ডিফল্ট ফায়ারওয়াল হিসাবে Nftables ব্যবহার করছে। Iptables অভিজ্ঞ ব্যবহারকারীরা Iptables-nftables-compat টুলটি দেখতে চাইতে পারেন, যা Iptables থেকে Nftables অনুবাদ করে। এটি তাদের পার্থক্য বুঝতে সাহায্য করতে পারে।

সিস্টেম অ্যাডমিনিস্ট্রেটরদের মতো পেশাদার ব্যবহারকারীরা Iptables এর সাথে কাজ চালিয়ে যেতে থাকে; ফিল্টারিং উন্নত করার সময় সময় বাঁচাতে Nftables উপেক্ষা করা এড়িয়ে চলুন। আমি আশা করি এই নিবন্ধটি আপনাকে Nftables চেষ্টা করার জন্য বোঝানোর জন্য যথেষ্ট সহজ ছিল।