ओपनवीपीएन के लिए यूएफडब्ल्यू


17

मैं OpenVPN के लिए ufw (सीधी फ़ायरवॉल) कॉन्फ़िगर करना चाहता हूं।

केवल OpenVPN के माध्यम से कनेक्शन की अनुमति है। बाकी सब अवरुद्ध होना चाहिए। तो अगर OpenVPN डिस्कनेक्ट हो गया है -> कोई इंटरनेट नहीं है! मुझे यह स्क्रिप्ट ऑनलाइन मिली और मैं जानना चाहता हूं कि क्या यह काफी अच्छा है। या मुझे और नियम जोड़ने होंगे?

#!/bin/bash
###########################################
#          Created by Thomas Butz         #
#   E-Mail: btom1990(at)googlemail.com    #
#  Feel free to copy & share this script  #
###########################################

# Adapt this value to your config!
VPN_DST_PORT=3478

# Don't change anything beyond this point
###########################################

# Check for root priviliges
if [[ $EUID -ne 0 ]]; then
   printf "Please run as root:\nsudo %s\n" "${0}"
   exit 1
fi


# Reset the ufw config
ufw --force reset

# let all incoming traffic pass
ufw default allow incoming
# and block outgoing by default
ufw default deny outgoing

# Every communiction via VPN is considered to be safe
ufw allow out on tun0

# Don't block the creation of the VPN tunnel
ufw allow out $VPN_DST_PORT
# Don't block DNS queries
ufw allow out 53

# Allow local IPv4 connections
ufw allow out to 10.0.0.0/8
ufw allow out to 172.16.0.0/12
ufw allow out to 192.168.0.0/16
# Allow IPv4 local multicasts
ufw allow out to 224.0.0.0/24
ufw allow out to 239.0.0.0/8

# Allow local IPv6 connections
ufw allow out to fe80::/64
# Allow IPv6 link-local multicasts
ufw allow out to ff01::/16
# Allow IPv6 site-local multicasts
ufw allow out to ff02::/16
ufw allow out to ff05::/16

# Enable the firewall
ufw enable

स्रोत: http://pastebin.com/AUHh6KnV


ठीक लग रहा है! बस कोशिश करें और देखें कि क्या यह काम करता है, यह कोई भी समस्या है जिसे आप हमेशा ufwउपयोग करके अक्षम कर सकते हैं sudo ufw disableऔर उपयोग करने वाले सभी फ़ायरवॉल नियमों को हटा सकते हैं sudo ufw --force reset। क्या गलत होने की सम्भावना है? ;-)
ntninja

2
मैं आने वाले सभी ट्रैफ़िक को अनुमति देने से बच सकता हूं, क्योंकि अकेले ही ओपनपप को काम करने की अनुमति देगा।
JVE999

2
आपको हमेशा आने वाले कनेक्शनों को डिफ़ॉल्ट रूप से अस्वीकार करना चाहिए ...
n00dl3

यह स्क्रिप्ट स्पष्ट रूप से फाइलशेयरिंग उद्देश्यों के लिए बनाई गई है। आने वाले कनेक्शन को अस्वीकार करना उद्देश्य को हरा देता है। यह आपको वाणिज्यिक वीपीएन अनुप्रयोगों के "किलस्विच" व्यवहार देता है - अधिक नहीं, कम नहीं।
emk2203

@ emk2203 नहीं, यह सुरंग के बाहर आने वाले यातायात से इनकार करता है।
बेर्बट

जवाबों:


8

कॉन्फ़िगरेशन अधिक प्रतिबंधक हो सकता है

ufw --force reset

ufw default deny incoming # Use the VPN tunnel for all traffic
ufw default deny outgoing

ufw allow out on tun0
ufw allow in on tun0

ufw allow out $port/$protocol # e.g. 1234/udp, depending on your OpenVPN client config

# Prefer resolved hosts to connect to your VPN, enable only if your VPN provider doesn't give you that option
#ufw allow out 53

# Allow local IPv4 connections, enable as needed, set specific IPs or tighter subnet masks if possible
#ufw allow out to 10.0.0.0/8
#ufw allow out to 172.16.0.0/12
#ufw allow out to 192.168.0.0/16
# Allow IPv4 local multicasts
#ufw allow out to 224.0.0.0/24
#ufw allow out to 239.0.0.0/8
# Allow local IPv6 connections
#ufw allow out to fe80::/64
# Allow IPv6 link-local multicasts
#ufw allow out to ff01::/16
# Allow IPv6 site-local multicasts
#ufw allow out to ff02::/16
#ufw allow out to ff05::/16

# Enable the firewall
ufw enable

अभी भी फ़ायरवॉल लिंगो को समझने की कोशिश कर रहा है, लेकिन क्या आप काल्पनिक tun0रूप से वीपीएन से इनबाउंड कनेक्शन ब्लॉक करने के साधन के रूप में अनुमति नहीं देना चाहेंगे ? में के रूप में ufw deny in on tun0?
मैट

@MattBorja यदि आप ufw default deny incomingऔर ufw deny in on tun0, आपको कोई आवक कनेक्शन नहीं मिलेगा। कुछ इंटरफ़ेस को आने वाले ट्रैफ़िक की अनुमति देनी चाहिए, इस मामले में हम चाहते हैं कि यह वीपीएन हो tun0
बेर्बेट

आप सही हैं, मैंने किसी तरह नहीं देखा। अवहेलना :)
मैट

दरअसल, ऐसा लग रहा है कि मैं "सवाल कर रहा था" क्या ufw allow in on tun0लाइन थी।
मैट

7

मजबूत अनुशंसा यह है कि आप इन दो आदेशों का उपयोग न करें :

ufw allow incoming
ufw default allow in on tun0

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

यहाँ फ़ायरवॉल के साथ उपयोग के लिए UFW कमांड की एक श्रृंखला के लिए एक उदाहरण दिया गया है:

sudo ufw enable
sudo ufw --force reset
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out on tun0
sudo ufw allow out on eth0 to any port 53,1197 proto udp
sudo ufw allow out on wlan0 to any port 53,1197 proto udp
sudo ufw status verbose

उदाहरण परिणाम:

Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
Anywhere                   ALLOW OUT   Anywhere on tun0          
53,1197/udp                ALLOW OUT   Anywhere on eth0
53,1197/udp                ALLOW OUT   Anywhere on wlan0
Anywhere (v6)              ALLOW OUT   Anywhere (v6) on tun0
53,1197/udp (v6)           ALLOW OUT   Anywhere (v6) on eth0
53,1197/udp (v6)           ALLOW OUT   Anywhere (v6) on wlan0

नोट: -आपका इंटरफ़ेस अलग हो सकता है, उदाहरण के लिए ubuntu 16.12 में eno1 और wlp3s0b1 का उपयोग किया जाता है। अपने वास्तविक इंटरफेस को देखने के लिए कमांड "ifconfig" का उपयोग करें। -1197 यूडीपी काफी डिफ़ॉल्ट है, लेकिन आपको इसे अपने वीपीएन (जैसे 443 टीसीपी) के लिए बदलना पड़ सकता है। -मैं आमतौर पर ipv6 (sudo ufw delete 4, repeat x3) को हटाता हूं

यह क्या करता है: -यह सब कुछ अवरुद्ध करते हुए वीपीएन सुरंग के माध्यम से आउटबाउंड कनेक्शन की अनुमति देता है, लेकिन ईथरनेट या वाईफाई पर वीपीएन सुरंग और डीएनएस कनेक्शन। DNS मुद्दे पर नीचे चेतावनी।

चेतावनी: यह उदाहरण DNS अनुरोधों के लिए 53 पर अनुमति देता है ताकि Openvpn (जैसे vpn.somevpnprovider.com) IP पते का अनुरोध कर सके और एक कनेक्शन बना सके। डीएनएस रिसाव के लिए व्यापार बंद संभावित है। अपने VPN अनुरोधों को अपने DNS अनुरोधों को सुनिश्चित करने के लिए dnsleaktest.com का उपयोग करें। सतर्क / पागल के लिए, 53 पर बाहर निकलने की अनुमति दें और इसके बजाय अपने फ़ायरवॉल को कनेक्ट करने के लिए बंद करें, फिर एक बार कनेक्ट होने पर वापस। अपने वीपीएन कारणों के लिए, मैं ऐसा नहीं करने का विकल्प चुनता हूं क्योंकि यह अधिक संभावना है कि मैं फ़ायरवॉल को पूरी तरह से भूल जाऊंगा (जैसे कि डीएनएस वैसे भी लीक हो जाएगा अगर ओपनवीएनपी गलत है)।

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