OpenVPN için UFW


17

OpenVPN için ufw (karmaşık olmayan güvenlik duvarı) yapılandırmak istiyorum.

Bağlantılara yalnızca OpenVPN üzerinden izin verilir. Diğer her şey engellenmelidir. Yani OpenVPN bağlantısı kesilirse -> internet yok! Bu betiği çevrimiçi buldum ve yeterince iyi olup olmadığını bilmek istiyorum. Yoksa daha fazla kural eklemek zorunda mıyım?

#!/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

Kaynak: http://pastebin.com/AUHh6KnV


İyi görünüyor! Sadece çalışıp çalışmadığını görün ve her zaman ufwkullanarak devre dışı bırakabileceğiniz herhangi bir sorun var sudo ufw disableve kullanarak tüm güvenlik duvarı kurallarını kaldırın sudo ufw --force reset. Ne yanlış gidebilir ki? ;-)
ntninja

2
Tüm gelen trafiğe izin vermekten kaçınabilirim, çünkü bu yalnızca openvpn'nin çalışmasına izin verecektir.
JVE999

2
varsayılan olarak gelen bağlantıları her zaman reddetmelisiniz ...
n00dl3

Bu komut dosyası açıkça dosya paylaşımı amacıyla hazırlanmıştır. Gelen bağlantıların reddedilmesi amacı bozar. Size ticari VPN uygulamalarının "öldürme" davranışını verir - daha fazla değil, daha az değil.
emk2203

@ emk2203 hayır, tünel dışından gelen trafiği reddediyor.
berbt

Yanıtlar:


8

Yapılandırma daha kısıtlayıcı olabilir

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

Yine güvenlik duvarı argo anlamaya çalışan, ancak varsayımsal üzerinde izin istemem tun0gelen bağlantıları engelleme aracı olarak gelen VPN? İn olarak, ufw deny in on tun0?
Matt

@MattBorja ufw default deny incomingve eğer ufw deny in on tun0, gelen herhangi bir bağlantı elde edemezsiniz. Bazı arabirimler gelen trafiğe izin vermelidir, bu durumda VPN'nin olmasını istiyoruz tun0.
berbt

Haklısın, bir şekilde görmedim. Dikkate almayın :)
Matt

Aslında, ben "sorgulama" ne ufw allow in on tun0çizgi gibiydi .
Matt

7

Güçlü bir öneri şu iki komutu KULLANMAMANIZdır :

ufw allow incoming
ufw default allow in on tun0

Güvenlik duvarına sahip olma amacını yenmek. İade paketlerini almak için "tun0'da izin ver" seçeneğinin olması yanlıştır. Tüm dünyanın sizinle bağlantı kurmasına izin vermek yerine, yalnızca istediğiniz bağlantıları almak istiyorsunuz. İzin vermek bunu yapar. Aşağıda önerilen yapılandırmayı test edin ve bakın.

Güvenlik duvarı ile kullanmak için bir dizi UFW komutuna örnek:

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

Örnek Sonuç:

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

NOT: -Arayüzleriniz farklı olabilir, örneğin ubuntu 16.12 eno1 ve wlp3s0b1 kullanır. Gerçek arayüzlerinizi görmek için "ifconfig" komutunu kullanın. -1197 UDP oldukça varsayılan, ancak VPN'iniz için değiştirmeniz gerekebilir (örn. 443 TCP). -Genellikle ipv6'yı silerim (sudo ufw delete 4, x3 tekrar)

Bu ne yapar: - Ethernet tüneli ve ethernet / wifi üzerindeki DNS bağlantıları hariç her şeyi engellerken, VPN tüneli üzerinden giden bağlantılara izin verir. DNS sorunu hakkında aşağıdaki uyarı.

Uyarı: Bu örnek, openvpn'nin (örn. Vpn.somevpnprovider.com) IP adresini isteyebilmesi ve bağlantı kurabilmesi için DNS istekleri için 53'e izin verir. Değişim, DNS sızıntısı potansiyeli. VPN ayarlarınızın DNS isteklerinizi tünellediğinden emin olmak için dnsleaktest.com adresini kullanın. Dikkatli / paranoyak için 53'e izin vermeyin ve bunun yerine güvenlik duvarınızı bağlanmak için kapatın, sonra bağlandıktan sonra tekrar açın. VPN nedenlerim için, bunu yapmamayı seçiyorum çünkü güvenlik duvarını tamamen unutacağım (örneğin, openvpn yanlış yapılandırılmışsa DNS yine de sızacak).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.