टर्मिनल से कुछ वेबसाइटों के श्वेतसूची बनाना


3

मैं 'उत्पादकता' उद्देश्यों (जब मैं केवल काम कर रहा हूं) के लिए काम करते समय एक या दो वेबसाइटों (श्वेत सूची) को छोड़कर सभी वेबसाइटों को अवरुद्ध करना चाहता हूं। मैं जानता हूँ कि अलग-अलग वेबसाइटों को ब्लॉक करने के लिए कैसे जैसा कि यहाँ दिखाया http://www.wikihow.com/Block-and-Unblock-Internet-Sites-(On-a-Mac) , लेकिन मैं सभी एक या दो (यानी छोड़कर ब्लॉक करना चाहते हैं, एक सफेद सूची बनाएँ)।

क्या यह टर्मिनल से किया जा सकता है? (जैसे लिंक में ऐप्स को ब्लॉक करना)

मैं किसी भी उत्पादकता एप्लिकेशन को स्थापित किए बिना इसे करना पसंद करूंगा।

जवाबों:


2

सभी डोमेन के लिए आउटगोइंग ट्रैफ़िक को स्थायी रूप से ब्लॉक करने के लिए, कुछ को छोड़कर आपको एक नई एंकर फ़ाइल बनानी चाहिए और इसे pf.conf में जोड़ना चाहिए और इसमें शामिल pf फ़ायरवॉल को सक्षम करना चाहिए।

  1. एक एंकर फ़ाइल org.user.block.out को /pStreet/etc/pf.anchors में बनाएँ

    sudo touch /private/etc/pf.anchors/org.user.block.out
    

    निम्नलिखित सामग्री और एक अनुगामी खाली लाइन के साथ

    #whitelist
    mygoodhosts = "{ wikipedia.org, stackexchange.com, 197.10.15.234 }"
    #ports to block/pass
    myports = "{ 443, 80, 8080 }"
    
    block drop out proto { tcp, udp } from any to any port $myports
    pass out proto { tcp, udp } from any to $mygoodhosts port $myports
    

    Mygoodhosts में अतिरिक्त IP पता केवल एक उदाहरण है कि श्वेतसूची में अतिरिक्त आइटम कैसे जोड़े जाएं। वही बंदरगाह में 8080 के लिए जाता है।

    Stackexchange.com पर पूर्ण पहुँच की अनुमति देने के लिए आपको कुछ और डोमेन जोड़ना होगा क्योंकि कुछ आइटम (जैसे जावास्क्रिप्ट) ajax.googleapis.com जैसे तृतीय-पक्ष डोमेन से लोड किए गए हैं।

  2. फ़ाइल /pStreet/etc/pf.conf को संशोधित करें लेकिन एक अनुगामी खाली लाइन रखें

    मूल फ़ाइल:

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    

    सेवा मेरे

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    anchor "org.user.block.out"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    load anchor "org.user.block.out" from "/etc/pf.anchors/org.user.block.out"
    
  3. पार्स करें और सुनिश्चित करें कि कोई त्रुटि नहीं है, यह सुनिश्चित करने के लिए अपनी एंकर फ़ाइल का परीक्षण करें:

    sudo pfctl -vnf /etc/pf.anchors/org.user.block.out
    
  4. अब फ़ायरवॉल को सक्षम करें:

    sudo pfctl -f /etc/pf.conf -e
    
  5. pfबाद में निष्क्रिय करने के लिए (जब आप उत्पादक काम के साथ किए जाते हैं) बस दर्ज करें:

    sudo pfctl -d
    

पहले दो चरणों को केवल एक बार किया जाना है। यदि आप श्वेतसूची में एक डोमेन जोड़ना या निकालना चाहते हैं, तो फ़ायरवॉल बंद करें, org.user.block.out को संशोधित करें , एंकर फ़ाइल को पार्स करें और फ़ायरवॉल को फिर से सक्षम करें।


लॉगिंग को सक्षम करने के लिए आपको कई फ़ाइलों को संशोधित करना होगा और एक लॉन्च डेमॉन / शेल स्क्रिप्ट जोड़ना होगा (बनाई गई / संशोधित सभी फ़ाइलों को शायद एक खाली फ़ाइल की आवश्यकता है):

  1. एक लॉग फ़ाइल बनाएँ:

    sudo touch /etc/log/pf.log
    
  2. एक पंक्ति जोड़कर syslog.conf संशोधित करें:

    local2.*                        /var/log/pf.log
    
  3. /Usr/local/bin/pflog.sh सामग्री में एक शेल स्क्रिप्ट जोड़ें:

    #!/bin/sh
    # bodged solution to absence of pflogd, ref 'Book of PF' p136
    
    ifconfig pflog0 create
    /usr/sbin/tcpdump -lnettti pflog0 | /usr/bin/logger -t pf -p local2.info
    
  4. एक लॉन्च डेमॉन / लाइन्स बनाएं / LaunchDaemons/org.user.pflog.pl सामग्री के साथ:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>org.user.pflog</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/pflog.sh</string>
        </array>
        <key>Disabled</key>             
        <false/>
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>
    
  5. साथ pfctl बंद करो sudo pfctl -d
  6. संशोधित ब्लॉक ड्रॉप करने के लिए /private/etc/pf.anchors/org.user.block.out में लाइन:

    block drop out log (all) proto { tcp, udp } from any to any port $myports
    
  7. लकड़हारे की मुट्ठी लोड करें:

    sudo launchctl load -w /Library/LaunchDaemons/org.user.pflog.plist
    
  8. अब फ़ायरवॉल को पुनः सक्षम करें:

    sudo pfctl -f /etc/pf.conf -e
    
  9. Console.app में pf.log देखें!


सिस्टम अपडेट के बाद या ऊपर दी गई कुछ मूल फ़ाइलों को अपग्रेड किया जा सकता है और आपको सभी परिवर्तनों को फिर से लागू करना होगा।


मैंने सभी चरणों की कोशिश की है, लेकिन सभी चरणों का पालन करने के बाद सभी वेबसाइटों तक पहुँच प्राप्त कर सकते हैं। शुरू करने के लिए, मैंने हर उस तरह से किया जैसा कि आप लिखते हैं, जो कि विकिपीडिया और स्टैकओवरफ़्लो के साथ है और परिवर्तनों को लागू करने के बाद परीक्षण किया जाता है कि क्या अन्य वेबसाइटें खुल रही हैं या नहीं .. लेकिन वे खोल रहे हैं ...
उमर

मुझे नहीं पता, इसे कैसे जांचें?
उमर

दोनों फाइलों (org.user.block.out.f और pf.conf) के अंत में एक नई लाइन है
उमर


1
@ उम हम्म जो pf के साथ उस आसान काम नहीं करता है। pf "alf" की तरह "एप्लीकेशन फ़ायरवॉल" नहीं है। मुझे लगता है कि यह संभव है (इस अतिरिक्त फ़ायरवॉल में पहले से ही /pStreet/etc/pf.anchors/com.apple में एक एंकर है) लेकिन मुझे लगता है कि यह जटिल है। शायद यह एक नए प्रश्न में बेहतर है क्योंकि यह यहाँ इस के दायरे से बहुत दूर है ।
कालोनोमथ

0

मूल रूप से उसी रणनीति का उपयोग कर रहे हैं जो आपके द्वारा पोस्ट किए गए लिंक लेख के रूप में है लेकिन थोड़े अलग तरीके से।

पहले उन साइटों के आईपी पते प्राप्त करें जिन्हें आप एक्सेस करना चाहते हैं

सबसे आसान तरीका है, उन्हें टर्मिनल से पिंग करने बस है ping www.google.com। IP पता रिकॉर्ड करें। यदि वह आपको IP पता नहीं देता है, तो nslookup का प्रयास करें nslookup www.google.com। IP पता रिकॉर्ड करें।

अपने DNS को बंद करें

मैन्युअल रूप से कुछ भी नहीं करने के लिए अपने DNS सर्वर सेटिंग्स बारी। यदि आप डीएचसीपी का उपयोग कर रहे हैं, तो आपको इसे पूरा करने के लिए अपने मैक पर एक स्थिर आईपी पता सेट करने की आवश्यकता हो सकती है, या इसे अपने राउटर / डीएचसीपी सर्वर पर कर सकते हैं और अपने आईपी को नवीनीकृत कर सकते हैं।

उन साइटों को अनुमति दें जिन्हें आप एक्सेस करना चाहते हैं

आप टर्मिनल से फ़ाइल को होस्ट करते हैं, vi /etc/hostsऔर उन साइटों के आईपी पते और डीएनएस नाम जोड़ें जिन्हें आप एक्सेस करना चाहते हैं

216.58.199.78    www.google.com
157.166.226.25   www.cnn.com

इन्हें फ़ाइल के अंत में जोड़ें।

जब आपका किया जा रहा उत्पादक है

आपको डीएनएस सेटिंग्स वापस सामान्य करने के लिए चालू करें। तुम भी मेजबान फ़ाइल में लाइनों के साथ टिप्पणी करना चाहते हो सकता है a #

#216.58.199.78    www.google.com
#157.166.226.25   www.cnn.com

मैंने इसे लागू करने की कोशिश की है। लेकिन जब मुझे स्टैटिक आईपी मिलता है, तो सभी वेबसाइटें ब्लॉक हो जाती हैं, जिसमें मैं एक्सेस करना चाहता हूं। उदाहरण के लिए,216.58.199.78 www.google.com
उमर

क्या आप अपनी होस्ट फ़ाइल में जोड़ा गया पोस्ट कर सकते हैं?
टाइफर्ड

शुरुआत में, मैंने सिर्फ अपनी पहले से मौजूद ब्लैक लिस्ट में व्हाइट लिस्ट को जोड़ा, लेकिन फिर मैंने ब्लैक लिस्ट को मिटा दिया और अब मैं सिर्फ यह देखने के लिए गूगल टाइप करता हूं कि यह काम करता है या नहीं .. और यह है कि यह कैसे दिखता है108.177.14.94 www.google.se
उमर

DNS को बंद करने के बाद भी मुझे कुछ नहीं मिलता ... यानी कोई वेब एसीस नहीं है
उमर

मुझे लगता है कि जैसे ही डीएनएस को बंद किया जाता है वैसे ही मुद्दा वहां होता है .. ऐसा कोई वेब एक्सेस नहीं है जो कभी भी हो
उमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.