Ubuntu पर सरल फ़ायरवॉल कैसे सेटअप करें?


18

क्या कोई व्यक्ति विन्यास उदाहरण के साथ कुछ सरल कदम दे सकता है कि सरल फ़ायरवॉल को उबंटू (केवल कंसोल का उपयोग करके) कैसे सेटअप किया जाए? केवल ssh, http और https एक्सेस की अनुमति दी जानी चाहिए।


क्या आप नेटवर्क फ़ायरवॉल या सिर्फ सिस्टम फ़ायरवॉल के बारे में बात कर रहे हैं?
ब्रैड गिल्बर्ट

नेटवर्क फ़ायरवॉल से आपका क्या तात्पर्य है? क्या यह राउटर पर फ़ायरवॉल है? यदि हाँ, तो मैं सिस्टम फ़ायरवॉल के बारे में बात कर रहा था।
klew

जवाबों:


20

सूद ufw डिफ़ॉल्ट इनकार

sudo ufw http की अनुमति दें

sudo ufw अनुमति दें https

सूद ufw ssh अनुमति देते हैं

सूद ufw सक्षम करें


अगर मैं इस आदेश को ssh के माध्यम से अनुक्रम में कहूंगा, तो क्या यह मेरा कनेक्शन तोड़ देगा?
klew

मुझे विश्वास नहीं है, लेकिन आपको यह सुनिश्चित करने के लिए जाँच करनी चाहिए। यह पुनरारंभ के बीच भी स्थिति रखता है, इसलिए आपको इसे केवल एक बार करने की आवश्यकता है।
Nerdfest

जब मैं इस कंप्यूटर के करीब रहूंगा तो मैं इसकी जांच करूंगा ...
klew

आप इसे एक स्क्रिप्ट में डाल सकते हैं और इसे चला सकते हैं और फिर भी यदि आप डिस्कनेक्ट हो जाते हैं तो आप बाद में फिर से कनेक्ट कर पाएंगे। स्क्रिप्ट के लिए नीचे मेरा जवाब देखें।
हामिश डाउनर

2
पिछली टिप्पणी सही है। मूल रूप से, उपरोक्त लिपि में पहले कमांड को अंतिम रूप से चलाएं।
Nerdfest

14

इस स्क्रिप्ट का उपयोग करें।

बस तय करें कि आप आने वाले ICMP (पिंग) को अनुमति देना चाहते हैं या नहीं।

# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush

# As the default policies, drop all incoming traffic but allow all
# outgoing traffic.  This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT

# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT

# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT

# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT

# Reject all other incoming packets
iptables -A INPUT -j REJECT

8

जैसा कि एक अन्य जवाब के लिए टिप्पणियों में कहा गया है, आप ssh पोर्ट की अनुमति देने से पहले अपना कनेक्शन खोना नहीं चाहते हैं। आदमी पृष्ठ से:

"दूरस्थ प्रबंधन

जब ufw इनेबल को चलाना या अपनी इनस्क्रिप्ट के माध्यम से ufw शुरू करना, ufw अपनी चेन को फ्लश करेगा। यह आवश्यक है ताकि ufw एक सुसंगत स्थिति बनाए रख सके, लेकिन यह मौजूदा कनेक्शन (जैसे ssh) को छोड़ सकता है। ufw फ़ायरवॉल को सक्षम करने से पहले नियमों को जोड़ने का समर्थन करता है, इसलिए व्यवस्थापक कर सकते हैं:

ufw allow proto tcp from any to any port 22

'ufw enable' चलाने से पहले। नियम अभी भी फ्लश किए जाएंगे, लेकिन फ़ायरवॉल को सक्षम करने के बाद ssh पोर्ट खुला रहेगा। कृपया ध्यान दें कि एक बार ufw 'सक्षम' हो जाने के बाद, ufw नियमों को जोड़ने या हटाने के दौरान (लेकिन जब किसी नियम को संशोधित या डिफ़ॉल्ट नीति को बदलकर) चेन को फ्लश नहीं करेगा। "

तो यहाँ एक दृष्टिकोण है जो इसे सेट करने के लिए स्क्रिप्ट का उपयोग करता है। जब आप इस स्क्रिप्ट को चलाते हैं, तो आप लॉग आउट हो जाएंगे, लेकिन इसे चलाने के बाद आप फिर से ssh में लॉग इन कर सकते हैं।

निम्नलिखित को स्क्रिप्ट में रखें और इसे start-firewall.sh कहें

#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https

और फिर इसे निष्पादन योग्य बनाएं और इसे करके चलाएं

$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh

अधिक जानने के लिए, मैन पेज पढ़ें ।


2

यदि आप स्क्रिप्टिंग से खुद को परिचित करते हैं iptables, तो आपके पास सभी फ़ायरवॉल क्षमताओं पर पूर्ण नियंत्रण होगा। यह फायरस्टार के रूप में अनुकूल कहीं नहीं है, लेकिन इसे कंसोल पर nano/ viसंपादकों के साथ किया जा सकता है । इस ट्यूटोरियल को देखें उबंटू की ओर।


1

क्विकटेबल्स ने मुझे iptables नियमों को सीखने में मदद की। बस स्क्रिप्ट चलाएं और यह आपके लिए एक iptables स्क्रिप्ट उत्पन्न करेगा ... फिर आप इसे खोल सकते हैं और आपके द्वारा पूछे गए प्रश्नों से उत्पन्न संबंधित आदेश देख सकते हैं। यह एक महान शिक्षण संसाधन है।

दुर्भाग्य से, अब इसका रखरखाव नहीं है।

http://qtables.radom.org/


1

मुझे वास्तव में फायरहोल का उपयोग करना पसंद है ( पैकेज ) ।

आप की तरह सेटअप नियम बनाने के लिए आपको फ़ाइल / आदि / डिफ़ॉल्ट / फ़ायरहोल को संपादित करना होगा और START_FIREHOL = YES को बदलना होगा

और आप अपने /etc/firehol/firehol.conf को ऐसा बनाना चाहेंगे।

version 5

interface any IfAll
    client any AnyClient accept
    server "ssh http https" accept
    # Accept everything from trusted networks
    server anystateless AllInside accept src "10.3.27.0/24"

फायरहोल के बारे में महान चीजों में से एक 'कोशिश' कमांड है। आप अपनी कॉन्फ़िगरेशन फ़ाइल को समायोजित कर सकते हैं और एक 'फायरहॉल ट्राइ' कर सकते हैं, यदि आप जहां ssh के माध्यम से जुड़े हैं, और आपने जो कुछ बदला है वह आपके नेटवर्क एक्सेस को मार देता है तो फायरहोल परिवर्तनों को वापस कर देगा। परिवर्तन वास्तव में प्रभावी होने के लिए, आपको कहना होगा कि प्रतिबद्ध हैं।


1
फायरहोल iptables नियमों में हेरफेर करने के लिए शानदार है। '$ फ़ायरहॉल कोशिश' "फ़ायरवॉल को सक्रिय करता है, लेकिन तब तक प्रतीक्षा करता है जब तक उपयोगकर्ता शब्द टाइप नहीं करता है। यदि यह शब्द 30 सेकंड के भीतर टाइप नहीं किया जाता है, तो पिछला फ़ायरवॉल बहाल हो जाता है।"
गारेथ

Sooo आप नियमों को जोड़ / संपादित / हटा सकते हैं और फिर उनका परीक्षण कर सकते हैं। यदि आप SSH के माध्यम से इसे दूर से कर रहे हैं तो यह आपको अपने स्वयं के सर्वर से लॉक नहीं करने वाला है!
गारेथ



-1

sudo apt-get install firestarter

फिर, सिस्टम-> प्रशासन मेनू में देखें।


प्रश्नकर्ता केवल कंसोल का उपयोग करना चाहता है
माइकास

आह, मेरी गलती है। वैकल्पिक रूप से। व्यवस्थापक अभी भी सर्वर में ssh -X कर सकता है और दूर से फायरस्टार चला सकता है।
स्पूल्सन

1
मुझे ssh -X :) शुरू करने के लिए कुछ एक्स सर्वर स्थापित करने की आवश्यकता होगी।
क्लेव

@klew, आपको ssh पर X एप्लिकेशन चलाने के लिए एक पूर्ण X सर्वर स्थापित करने की आवश्यकता नहीं है। आप कई पुस्तकालयों की जरूरत है, लेकिन आप सब कुछ की जरूरत नहीं है। नंगे न्यूनतम के लिए आपको केवल xauth और xbase- क्लाइंट पैकेज की आवश्यकता होती है।
Zoredache
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.