फायरवॉल के साथ RHEL7 / CentOS7 पर आउटगोइंग कनेक्शन ब्लॉक करें?


12

RHEL7 / CentOS7 में एक नई firewalldफ़ायरवॉल सेवा है, iptables serviceजो iptablesकर्नेल के नेटफ़िल्टर के साथ बातचीत करने के लिए टूल का उपयोग करती है (दोनों का उपयोग करती है)।

firewalldआने वाले ट्रैफ़िक को अवरुद्ध करने के लिए आसानी से ट्यून किया जा सकता है, लेकिन जैसा कि थॉमस वोर्नर ने 1,5 साल पहले नोट किया था, "वर्तमान में फायरवॉल के साथ आउटगोइंग ट्रैफ़िक को सीमित करना संभव नहीं है"। और जहां तक ​​मैं देख सकता हूं कि तब से स्थिति नहीं बदली है। या है? क्या आउटगोइंग ट्रैफ़िक को ब्लॉक करने का कोई तरीका है firewalld? यदि iptablesउपकरण के माध्यम से नियमों को मैन्युअल रूप से जोड़ने के अलावा किसी भी अन्य "मानक" तरीके (आरएचईएल 7 डिस्ट्रो पर) आउटगोइंग ट्रैफिक को रोकने के नहीं हैं ?

जवाबों:


13

मुझे उस अच्छे GUI में कोई विकल्प नहीं मिला, लेकिन यह प्रत्यक्ष इंटरफ़ेस के माध्यम से संभव है

केवल आउटगोइंग पोर्ट 80 को सक्षम करने के लिए:

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=80 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP

यह इसे स्थायी नियमों में जोड़ देगा, न कि रनटाइम नियमों में।
आपको स्थायी नियमों को फिर से लोड करने की आवश्यकता होगी ताकि वे रनटाइम नियम बन जाएं।

firewall-cmd --reload

स्थायी नियमों को प्रदर्शित करने के लिए

firewall-cmd --permanent --direct --get-all-rules

रनटाइम नियमों को प्रदर्शित करने के लिए

firewall-cmd --direct --get-all-rules

वास्तविक समृद्ध-नियम भाषा का उपयोग करके इसे कैसे प्राप्त किया जा सकता है?
केसी

@ मेरी समझ से, समृद्ध नियम सख्ती से INPUT जंजीरों के लिए उपयोग किए जाते हैं।
चावल

मैं उपरोक्त नियम केवल ipv4(iptables) के लिए काम करता हूं । (Ip6tables के लिए ipv6) या eb(ebtables के लिए ) समान नियम होना वांछनीय हो सकता है ।
mwfearnley

इसके अलावा, यह सर्वर के लिए मेरे SSH कनेक्शन को मार डाला! स्थापित कनेक्शन को बनाए रखने के लिए user253068 का उत्तर देखें।
mwfearnley

6

खुद से एक ही सवाल पूछने के बाद, और कुछ छेड़छाड़ के साथ, मैंने HTTP / HTTPS और DNS प्रश्नों के लिए आउटगोइंग ट्रैफ़िक को प्रतिबंधित करने के लिए कुछ अच्छे नियम एकत्र किए हैं:

स्थापित कनेक्शन की अनुमति दें:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT

HTTP की अनुमति दें:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT

HTTPS की अनुमति दें:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT

DNS प्रश्नों के लिए अनुमति दें:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT

बाकी सब से इनकार करें:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -j DROP

'--परमानेंट' तर्क को छोड़ कर पहले परीक्षण करना एक अच्छा विचार हो सकता है।

मैं किसी भी तरह से एक विशेषज्ञ नहीं हूँ, लेकिन यह मेरे द्वारा ठीक काम करने लगता है :)


कुछ बिंदु पर आप नियमों को हटाने के लिए उपयोगी हो सकते हैं। एकल प्रत्यक्ष नियमों को हटाना मुश्किल लगता है, लेकिन स्लेजहेमर के लिए, firewall-cmd [--permanent] --direct --remove-rules ipv4 filter OUTPUTबल्क रिमूव करेगा।
mwfearnley

1

जीयूआई के बारे में; मुझे लगता है कि आप इसे " डायरेक्ट कॉन्फ़िगरेशन " के तहत पाते हैं । इसे एक्सेस करने के लिए आपको इसे " व्यू " में चुनना होगा । मै गलत हो सकता हूँ।

पक्षीय लेख

नियमों को हटाने के लिए; आपको बाहर निकलना होगा और फिर पुनर्मिलन करना होगा।

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