OpenBSD में पीएफ के साथ अपमानजनक आईपी पते को कैसे ब्लॉक करें?


13

हम नंगेक्स लॉग से देख सकते हैं कि एक आईपी एड्रेस है जो कि गंदा काम करता है।

हम इसे एक pfकमांड के साथ और फिर बाद में स्थायी रूप से कैसे ब्लॉक कर सकते हैं /etc/pf.log? हम x.x.x.x/24उस IP के लिए कैसे ब्लॉक कर सकते हैं ? इसका उदाहरण है: 1.2.3.4

अद्यतन: नहीं, ऐसा लगता है कि OpenBSD के पास / / आदि में फ़ाइल को अस्वीकार करने की अनुमति नहीं है। और AFAIK अपमानजनक आईपी पते को अवरुद्ध करने के लिए सबसे अच्छी सलाह पीएफ का उपयोग कर रहे हैं।

# cd /etc 
# ls -la|egrep -i 'deny|allow'
# uname -a
OpenBSD foo.com 5.4 GENERIC.MP#0 amd64
# 

क्या आपके पास / etc निर्देशिका में एक hosts.deny फ़ाइल है?
रेकायो

जवाबों:


13

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


4
ब्लॉक नियम को अधिक आसानी से निर्दिष्ट किया जा सकता है block in from <badhosts>। आपको इंटरफ़ेस या to anyभाग निर्दिष्ट करने की आवश्यकता नहीं है ।
कुर्टम

4

अन्य उत्तरों से यह स्पष्ट नहीं है कि आपको उन बैडहोस्ट की वास्तविक तालिका बनाने की आवश्यकता है जिन्हें आप ब्लॉक करने की कोशिश कर रहे हैं।

यह pf.conf फ़ाइल में जाता है, उदाहरण के लिए मेरे पास दो बैडगिज़ फ़ाइलें हैं, 1 और 2 बैडगिज़ 1 उन लोगों के लिए है जो आते हैं और जाते हैं, और बैडगिज़ 2 स्थायी ब्लैक लिस्टिंग के लिए है।

इसलिए यदि आपको किसी ऐसे व्यक्ति का आईपी जोड़ने की आवश्यकता है जो एक समय के लिए उपद्रव कर रहा है, तो उन्हें badguys1 में जोड़ें।

अब, आपकी pf.conf फ़ाइल में यह आपके पास है। मेरे उदाहरण में मैं en1 का उपयोग करता हूं, क्योंकि यह मेरा वाईफाई इंटरफेस है। सेट करें कि आपके नेटवर्क पर क्या इंटरफ़ेस आता है।

table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on en1 from <badhosts> to any

अब आप badguys1 में अस्थायी पते जोड़ सकते हैं। (बैडहॉस्ट नहीं, यह तालिकाओं के लिए एक नाम है)

sudo pfctl -t badguys1 -T add 185.130.5.160

1 table created.
1/1 addresses added.

हालांकि यह कहता है कि 1 तालिका बनाई गई है - यह वास्तव में आईपी को जोड़ता है, एक नई तालिका नहीं बना रहा है। अब यदि आप badguys1 में देखते हैं, तो आप नया आईपी देखेंगे।

sudo pfctl -t badhosts -T show

3

मुझे यह जानकारी वेबसाइट से मिली और मुझे मेरे बीमार ज्ञान के लिए क्षमा कर दिया OpenBSD, लेकिन यहाँ यह हो जाता है। इस URL पर एक नज़र डालें । इसके अनुसार, यह एक आईपी को अवरुद्ध करने के लिए कहता है जो आप करेंगे:

echo '123.123.123.123' >> /etc/pf.blocked.ip.conf

तब आप फ़ायरवॉल को पुनरारंभ करेंगे:

pfctl -d
pfctl -e -f /etc/pf.conf

या, फ़ायरवॉल प्रकार को पुनरारंभ किए बिना जोड़ने के लिए:

pfctl -t blockedips -T add 111.222.333.444

अब यह जाँचने के लिए कि क्या इसे जोड़ा गया है:

pfctl -t blockedips -T show

अद्यतन: शायद यह मदद करेगा।

  • निम्न फ़ाइल को vi में खोलें:

    vi /etc/pf.conf

  • कोड की निम्नलिखित पंक्ति जोड़ें:

    table <blockedips> persist file "/etc/pf.blocked.ip.conf" ext_if="bge0" # interface connected to internet

  • उस बिंदु के बाद, मैं फ़ायरवॉल को पुनरारंभ करने की कोशिश करूंगा और पुष्टि करूंगा कि आईपी टाइप करके अवरुद्ध है:

    pfctl -d
    pfctl -e -f /etc/pf.conf
    pfctl -t blockedips -T show
    

1
मुझे लगता है कि तालिका को ब्लॉक करने की आवश्यकता है, लेकिन यह हिस्सा
हॉव्टो

मुझे देखने दो कि क्या मैं ऐसा करने के लिए देख सकता हूं।
रेकायो

2
Pf.conf को फिर से लोड करने के लिए अक्षम और रीनेबल पीएफ की आवश्यकता नहीं है। pfctl -f /etc/pf.confपर्याप्त है।
Zé Loff

1
(बुरा) HOWTO सोच को हतोत्साहित करते हैं और नकल को प्रोत्साहित करते हैं। पढ़ें man pf.conf, आपको आश्चर्य होगा कि OpenBSD मैन पेज कितने अच्छे हैं। इसके अलावा, pf.confफ़ाइलों को एक पूरे के रूप में पढ़ा जाना चाहिए (जिस क्रम में नियमों को रखा गया है वह महत्वपूर्ण है) इसलिए एकल लाइनों की नकल करना और चिपकाना आमतौर पर एक बुरा विचार है। फ़ाइल और tableनियम बनाएँ (यह बहुत सही है) लेकिन या तो आप अपनी पूरी pf.confफ़ाइल साझा करें या यह उचित blockफ़ाइल और फ़ाइल में उसके स्थान का पता लगाने के लिए आप पर निर्भर है ।
Zé Loff

1
@ryekayo जब तक आप ext_if="bge0"मैक्रो को शामिल करने का औचित्य नहीं बता सकते हैं और आपके पास ब्लॉक नियम क्यों नहीं है, तो मैं आपके उत्तर की आलोचना करूंगा , क्योंकि यह अधूरा है (यानी एक उचित उत्तर नहीं), चाहे आप इसमें कितना भी प्रयास करें। इसके अलावा, HOWTOs के बारे में मेरी टिप्पणी ओपी में संबोधित की गई थी, न कि आप (माफी, मुझे यह स्पष्ट करना चाहिए)।
Zé Loff
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.