Я хочу настроить 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
ufw
используяsudo ufw disable
и удалить все правила брандмауэра, используяsudo ufw --force reset
. Что возможно могло пойти не так? ;-)Ответы:
Конфиг может быть более строгим
источник
tun0
качестве средства блокировки входящих соединений от VPN? Как вufw deny in on tun0
,?ufw default deny incoming
иufw deny in on tun0
, вы не будете получать входящие соединения. Какой-то интерфейс должен разрешать входящий трафик, в этом случае мы хотим, чтобы это были VPNtun0
.ufw allow in on tun0
линией.Настоятельно рекомендуется не использовать эти две команды :
Разрешение поражений с целью иметь брандмауэр. Неправильно, что вам нужно «разрешить вход в tun0» для получения возвращаемых пакетов. Вы хотите получать только те соединения, о которых просили, вместо того, чтобы позволить всему миру подключаться к вам. Разрешение будет делать это. Проверьте предложенную конфигурацию ниже и посмотрите.
Вот пример для серии команд UFW для использования с брандмауэром:
Пример результата:
ПРИМЕЧАНИЕ: - Ваши интерфейсы могут отличаться, например, в Ubuntu 16.12 используются eno1 и wlp3s0b1. Используйте команду "ifconfig", чтобы увидеть ваши реальные интерфейсы. -1197 UDP является стандартным значением по умолчанию, но вам может потребоваться изменить его для вашей VPN (например, 443 TCP). -Я обычно удаляю ipv6 (sudo ufw delete 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 неправильно настроен).
источник