এটি করার সর্বোত্তম উপায় হ'ল একটি টেবিলের সংজ্ঞা দেওয়া এবং হোস্টগুলিকে ব্লক করার জন্য একটি নিয়ম তৈরি করা pf.conf
:
table <badhosts> persist
block on fxp0 from <badhosts> to any
এবং তারপরে এটি থেকে আইপি অ্যাড্রেসগুলি গতিশীলভাবে যুক্ত / মুছুন:
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T delete 1.2.3.4
অন্যান্য 'টেবিল' কমান্ডের অন্তর্ভুক্ত flush
(সমস্ত অপসারণ), replace
এবং show
। আরও man pfctl
জন্য দেখুন।
আপনি যদি আরও স্থায়ী তালিকা চান তবে আপনি এটিকে একটি (বা আরও) ফাইলে রাখতে পারেন। ইন pf.conf
:
table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on fxp0 from <badhosts> to any
আপনি আইপি ঠিকানার পরিবর্তে হোস্ট-নেম যুক্ত করতে পারেন। এর "টেবিল" বিভাগে দেখুন man pf.conf
এবং man pfctl
।
দ্রষ্টব্য : উপরের উদাহরণগুলি ধরে নেওয়া হয় যে ইন্টারনেট-মুখী ইন্টারফেসটি রয়েছে fxp0
, দয়া করে আপনার সেটআপ অনুযায়ী পরিবর্তন করুন। এছাড়াও, মনে রাখবেন যে বিধিগুলি pf.conf
ক্রমানুসারে মূল্যায়ন করা হয় এবং এটি প্রযোজ্য এটির শেষ মিলের নিয়মের জন্য block
বা pass
নিয়ম করে। এই নিয়মমাফিক সঙ্গে
table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80
এবং badhosts
টেবিলে 1.2.3.4 এবং 192.168.0.10 যুক্ত করার পরে
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T add 192.168.0.10
1.2.3.4 এবং 192.168.0.10 থেকে সমস্ত ট্র্যাফিক ব্লক করা হবে তবে দ্বিতীয় হোস্ট অন্যান্য মেশিনের বন্দরে 80 এর সাথে সংযোগ স্থাপন করতে সক্ষম হবে কারণ pass
নিয়মটি মেলে এবং block
নিয়মটিকে ওভাররাইড করে ।