UFW для OpenVPN

Я хочу настроить ufw (несложный брандмауэр) для OpenVPN.

Соединения только позволяются через 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

17
задан 29 September 2014 в 17:09

2 ответа

Конфигурация может быть более строга

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
8
ответ дан 16 November 2019 в 13:03

Сильная рекомендация состоит в том, что Вы НЕ используете эти две команды:

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

Примечание: - Ваши интерфейсы могут отличаться, например, человечность 16.12 использует eno1 и wlp3s0b1. Используйте команду "ifconfig" для наблюдения фактических интерфейсов.-1197 UDP довольно по умолчанию, но Вы, возможно, должны изменить их для своей VPN (например, 443 TCP).-I обычно удаляют ipv6 (sudo ufw, удаляют 4, повторяют x3),

Что это делает: - это позволяет исходящие соединения через туннель VPN при блокировании всего кроме туннеля VPN и соединений DNS на Ethernet/Wi-Fi. Предупреждение ниже на проблеме DNS.

Предупреждение: Этот пример разрешает посещать на 53 для запросов DNS так, чтобы openvpn (например, vpn.somevpnprovider.com) мог запросить IP-адрес и установить связь. Компромисс является потенциалом для утечки DNS. Используйте dnsleaktest.com, чтобы гарантировать Вашему туннелю настроек VPN Ваши запросы DNS. Для осторожного/параноидального пропустите разрешение посещать на 53 и вместо этого отключите Ваш брандмауэр для соединения, затем обратно на когда-то связанном. По моим причинам VPN я принимаю решение не сделать это, так как более вероятно, что я забуду брандмауэр полностью (например, DNS протечет так или иначе, если openvpn будет неправильно сконфигурирован).

7
ответ дан 23 November 2019 в 02:25

Другие вопросы по тегам:

Похожие вопросы: