লঞ্চার পণ্য Bitnami ডকুমেন্টেশনimaxe CLI ব্লগ যোগাযোগ
imaxe firewall firewall v1.0.0

আপনার ফায়ারওয়াল, নিয়ন্ত্রণে

ufw-এর অবস্থা যাচাই করুন, অপব্যবহারকারী IP হাতে ব্লক করুন এবং একটি কমান্ড দিয়ে পোর্ট খুলুন বা বন্ধ করুন। স্বয়ংক্রিয় নিষেধাজ্ঞা fail2ban সামলায়; এটি আপনার ম্যানুয়াল ব্লক ও পোর্ট নিয়মের জন্য।

$ imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
সংস্করণ
v1.0.0
সাবকমান্ড
9
কনফিগ
/etc/imaxe/firewall.yml
root প্রয়োজন
হ্যাঁ
ভিত্তি
ufw + fail2ban

এই মডিউল কী করে #

ফায়ারওয়াল হলো সার্ভারের সদর দরজা: এটি সিদ্ধান্ত নেয় কোন সংযোগ ভেতরে ঢুকবে আর কোনগুলো প্রত্যাখ্যাত হবে। এই মেশিনগুলোতে সেই কাজটি করে ufw (Ubuntu-র ফায়ারওয়াল), আর firewall মডিউলটি আপনাকে ufw-এর সিনট্যাক্স মুখস্থ না করেই এটি চালানোর একটি সুবিধাজনক নিয়ন্ত্রণ দেয়।

এটি দিয়ে আপনি এক নজরে ফায়ারওয়ালের অবস্থা দেখতে পারেন (সক্রিয় অবস্থা, ডিফল্ট নীতি ও নিয়ম), আপনাকে ঝামেলা দিচ্ছে এমন একটি IP বা রেঞ্জ ম্যানুয়ালি ব্লক করতে পারেন, প্রয়োজন ফুরালে সেই ব্লক মুক্ত করতে পারেন এবং ufw যা প্রয়োগ করে তার সাথে কনফিগারেশন সমন্বিত রেখে পোর্ট খুলতে বা বন্ধ করতে পারেন।

ম্যানুয়াল ব্লক, স্বয়ংক্রিয় নয়

অনুপ্রবেশ চেষ্টার (SSH ব্রুট ফোর্স ইত্যাদি) স্বয়ংক্রিয় নিষেধাজ্ঞা fail2ban নিজেই সামলায়। এই মডিউলটি আপনার ম্যানুয়াল ব্লক নিয়ে কাজ করে: block, unblockflush কেবল আপনার হাতে যোগ করা জিনিস স্পর্শ করে এবং fail2ban-এর নিষেধাজ্ঞায় কখনো হস্তক্ষেপ করে না।

দ্রুত নির্দেশিকাধাপে ধাপে কাজ

সাধারণ কাজ #

আপনি কী করতে চান তা বেছে নিন। প্রতিটি রেসিপিতে কমান্ডটি আগে থেকেই লেখা আছে — শুধু নিজের IP বা পোর্ট বসান এবং কপি করুন চাপুন।

1

ফায়ারওয়ালের অবস্থা দেখুন

এটি সক্রিয় কিনা, এর ডিফল্ট নীতি এবং এর কতগুলো নিয়ম আছে যাচাই করুন।

SSH-এর মাধ্যমে আপনার সার্ভারে সংযোগ করুন এবং সারসংক্ষেপ চান:

terminal
$ sudo imaxe firewall status

একটি স্ক্রিপ্টের জন্য প্রয়োজন? --json যোগ করুন এবং আপনি একই তথ্য মেশিন-পাঠযোগ্য আকারে পাবেন:

terminal
$ sudo imaxe firewall status --json
আপনি দেখতে পান ফায়ারওয়াল সক্রিয় কিনা, ডিফল্ট নীতি, নিয়মের সংখ্যা এবং আপনার কতগুলো ম্যানুয়াল ব্লক চালু আছে।
2

একটি অপব্যবহারকারী IP ব্লক করুন

আপনাকে বিরক্ত করছে এমন একটি IP বা রেঞ্জের প্রবেশাধিকার কেটে দিন।

একটি নির্দিষ্ট IP ব্লক করুন, কারণ লিখে রাখুন যাতে পরে মনে থাকে:

terminal
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso"

কেবল একটি অস্থায়ী ব্লক চান? --ttl দিয়ে একটি সময়কাল দিন এবং এটি নিজে থেকেই উঠে যাবে। আপনি CIDR নোটেশনে একটি পুরো রেঞ্জও ব্লক করতে পারেন:

terminal
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
$ sudo imaxe firewall block 203.0.113.0/24 --reason "escaneo"
সেই IP বা রেঞ্জ আর সার্ভারে সংযোগ করতে পারে না। --ttl সেট করলে, সময় ফুরালে ব্লকটি নিজে থেকেই শেষ হয়ে যায়।
3

কোন IP ব্লক করেছি দেখুন

আপনার চালু থাকা ম্যানুয়াল ব্লকের তালিকা পর্যালোচনা করুন।

আপনার হাতে ব্লক করা IP ও রেঞ্জের তালিকা দিন (মনে রাখুন: fail2ban-এর নিষেধাজ্ঞা এখানে দেখা যায় না):

terminal
$ sudo imaxe firewall blocked
আপনি প্রতিটি ম্যানুয়াল ব্লক তার কারণসহ এবং, থাকলে, কখন মেয়াদ শেষ হয় তা দেখেন। কোনটির আর প্রয়োজন নেই? একটি IP আনব্লক করুন-এ যান।
4

একটি IP আনব্লক করুন

আর প্রয়োজন নেই এমন একটি ম্যানুয়াল ব্লক মুক্ত করুন।

আপনার ব্লক করা ঠিক সেই IP বা রেঞ্জ মুক্ত করুন (যেভাবে blocked-এ দেখা যায়):

terminal
$ sudo imaxe firewall unblock 203.0.113.10
সেই ঠিকানা আবার সংযোগ করতে পারে। আপনার বাকি ব্লক ও fail2ban-এর নিষেধাজ্ঞা অক্ষত থাকে।
5

একটি পোর্ট খুলুন বা বন্ধ করুন

একটি নতুন সার্ভিসকে ঢুকতে দিন বা আপনি আর দেন না এমন একটি বন্ধ করুন।

একটি পোর্ট খুলুন (একটি মন্তব্যসহ যাতে আপনি জানেন এটি কীসের জন্য)। --from দিয়ে আপনি কে ঢুকবে তা সীমিত করতে পারেন:

terminal
$ sudo imaxe firewall allow 443/tcp --comment "https"
$ sudo imaxe firewall allow 5432/tcp --from 203.0.113.0/24 --comment "postgres interno"

আপনি আর ব্যবহার করেন না এমন একটি পোর্ট বন্ধ করুন:

terminal
$ sudo imaxe firewall deny 8080/tcp
নিয়মটি ufw-তে প্রয়োগ হয় এবং firewall.yml-এ প্রতিফলিত হয়। imaxe firewall rules list দিয়ে এটি যাচাই করুন।
পোর্ট বন্ধ করার সময় সতর্ক থাকুন

আপনি SSH-এর মাধ্যমে সংযুক্ত থাকলে 22 পোর্ট (SSH) বন্ধ করবেন না: আপনি সার্ভারে প্রবেশাধিকার হারাবেন। মডিউলটি ঠিক সেই আশঙ্কা এড়াতেই ডিফল্টভাবে 22/tcp অনুমোদিত রাখে। আর মনে রাখুন flush আপনার সব ম্যানুয়াল ব্লক একসাথে মুছে ফেলে।

CLI রেফারেন্সকমান্ড, ফ্ল্যাগ ও ফাইল

সারসংক্ষেপ #

uso
imaxe firewall <subcomando> [<ip>|<puerto>] [flags]

সব সাবকমান্ডের জন্য root প্রিভিলেজ প্রয়োজন (sudo ব্যবহার করুন) কারণ এগুলো ufw-এর উপর কাজ করে ও /etc/imaxe/-তে লেখে। স্ক্রিপ্টিং-এর উপযোগী মেশিন-পাঠযোগ্য আউটপুট পেতে status, blocked বা rules list-এ --json যোগ করুন।

সাবকমান্ড #

সাবকমান্ডকী করেপ্রাসঙ্গিক ফ্ল্যাগ
statusফায়ারওয়ালের অবস্থা: সক্রিয় অবস্থা, ডিফল্ট নীতি, নিয়মের সংখ্যা ও ম্যানুয়াল ব্লক।--json
blockedম্যানুয়ালি ব্লক করা IP/রেঞ্জের তালিকা দেয় (fail2ban-এর নিষেধাজ্ঞা অন্তর্ভুক্ত নয়)।--json
blockএকটি IP বা রেঞ্জ ম্যানুয়ালি ব্লক করে, ঐচ্ছিক কারণ ও সময়কালসহ।--reason, --ttl
unblockএকটি ম্যানুয়াল ব্লক মুক্ত করে। fail2ban-এর নিষেধাজ্ঞা স্পর্শ করে না।
flushসব ম্যানুয়াল ব্লক মুছে ফেলে (ধ্বংসাত্মক)। fail2ban-এর নিষেধাজ্ঞা স্পর্শ করে না।--yes
rules listপোর্ট নিয়মের তালিকা দেয় (অনুমোদিত পোর্ট, উৎস)।--json
allowএকটি পোর্ট খোলে এবং কনফিগে তা প্রতিফলিত করে।--from, --comment
denyএকটি পোর্ট বন্ধ করে এবং কনফিগে তা প্রতিফলিত করে।--from
reloadufw রিলোড করে (এর সক্রিয় নিয়ম পুনরায় প্রয়োগ করে)।

rules পোর্ট নিয়ম পরিচালনা একত্র করে; আপাতত এর একমাত্র সাবকমান্ড হলো rules list

আর্গুমেন্ট ও ফ্ল্যাগ #

আর্গুমেন্ট / ফ্ল্যাগধরনডিফল্টবিবরণ
<ip>[/cidr] আবশ্যকstringblockunblock-এ কাজ করার জন্য IP বা CIDR রেঞ্জ (যেমন 203.0.113.10 বা 203.0.113.0/24)।
<port>[/proto] আবশ্যকstringallowdeny-এ কাজ করার জন্য পোর্ট (যেমন 443 বা 443/tcp)।
--reasonstringblock-এ: ব্লকের কারণ (তথ্যমূলক)।
--ttldurationpermanentblock-এ: ব্লকের সময়কাল (যেমন 24h)। ডিফল্টভাবে স্থায়ী।
--fromcidranyallow/deny-এ: উৎস একটি নির্দিষ্ট CIDR-এ সীমিত করে।
--commentstringallow-এ: নিয়মের জন্য বর্ণনামূলক মন্তব্য।
--yesboolfalseflush-এ: প্রম্পট ছাড়াই নিশ্চিত করে (ধ্বংসাত্মক অপারেশন)।
--jsonboolfalsestatus/blocked/rules list-এ: ফলাফল stdout-এ JSON হিসেবে দেয়।

ফাইল ও পাথ #

পাথবিষয়বস্তু
/etc/imaxe/firewall.ymlমডিউলের কনফিগারেশন: অনুমোদিত পোর্ট যা allow/deny ufw-এর সাথে সমন্বিত রাখে।

firewall.yml-এর উদাহরণ:

/etc/imaxe/firewall.yml
allow:
  - { port: 22, proto: tcp, comment: "ssh" }
  - { port: 443, proto: tcp, comment: "https" }

প্রস্থান কোড ও লগ #

প্রতিটি চালানো একটি কোড ফেরত দেয় যা আপনি echo $? দিয়ে যাচাই করতে পারেন — স্ক্রিপ্টে চেইন করার জন্য উপযোগী:

0OKঅপারেশন সফলভাবে সম্পন্ন।
1ERRশ্রেণিবদ্ধ নয় এমন সাধারণ ত্রুটি। লগ পর্যালোচনা করুন।
2USAGEঅবৈধ বা অনুপস্থিত আর্গুমেন্ট।
3NOTFOUNDনির্দিষ্ট IP বা নিয়ম বিদ্যমান নেই।

ডিবাগ করার সময় অবস্থা ও নিয়ম সরাসরি অনুসরণ করুন:

terminal
$ sudo imaxe firewall status
$ sudo imaxe firewall rules list

সমস্যা সমাধান #

উপসর্গসম্ভাব্য কারণসমাধান
আনব্লক করার সময় NOTFOUND (কোড 3) আসেIP-টি আপনার সেট করা ব্লকের সাথে হুবহু মেলে না (উদাহরণস্বরূপ /cidr বাদ পড়েছে)।imaxe firewall blocked চালান এবং unblock-এর জন্য এন্ট্রিটি হুবহু কপি করুন।
আমি একটি IP ব্লক করেছি কিন্তু unblock-এর পরও এটি নিষিদ্ধব্লকটি আপনি নয়, fail2ban সেট করেছিল।এই মডিউলটি কেবল ম্যানুয়াল ব্লক মুক্ত করে; স্বয়ংক্রিয় নিষেধাজ্ঞা fail2ban আলাদাভাবে সামলায়।
আমি একটি পোর্ট খুলেছি কিন্তু কোনো ট্রাফিক আসে নানিয়মটি ufw-তে আছে কিন্তু একটি বাইরের ফায়ারওয়াল (সিকিউরিটি গ্রুপ) এখনো বন্ধ।imaxe firewall rules list দিয়ে যাচাই করুন এবং আপনার ক্লাউড প্রদানকারীতেও পোর্টটি খুলুন।
নিয়ম বদলানোর পর SSH প্রবেশাধিকার হারিয়েছি22 পোর্ট বন্ধ বা সীমিত হয়ে গিয়েছিল।প্রদানকারীর কনসোলের মাধ্যমে প্রবেশ করুন এবং imaxe firewall allow 22/tcp দিয়ে 22/tcp পুনরায় অনুমোদন করুন।

Firewall মডিউল নিয়ে আটকে গেছেন?

«imaxe <module> status --json» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।

সাপোর্টে যোগাযোগ করুন