ऐसा करने का सबसे अच्छा तरीका मेज को परिभाषित करना और मेजबानों को अवरुद्ध करने के लिए एक नियम बनाना है 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
आप IP पते के बजाय होस्टनाम भी जोड़ सकते हैं। का "टेबल्स" अनुभाग देखें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
।