Chcę skonfigurować ufw (nieskomplikowaną zaporę ogniową) dla OpenVPN.
Połączenia są dozwolone tylko przez OpenVPN. Cała reszta powinna zostać zablokowana. Więc jeśli OpenVPN jest odłączony -> brak internetu! Znalazłem ten skrypt online i chcę wiedzieć, czy jest wystarczająco dobry. Czy muszę dodać więcej zasad?
#!/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
Źródło: http://pastebin.com/AUHh6KnV
ufw
przy użyciusudo ufw disable
i usunąć wszystkie reguły zapory użyciusudo ufw --force reset
. Co może pójść nie tak? ;-)Odpowiedzi:
Konfiguracja może być bardziej restrykcyjna
źródło
tun0
blokowanie połączeń przychodzących z VPN? Jak wufw deny in on tun0
,?ufw default deny incoming
iufw deny in on tun0
nie otrzymasz żadnych połączeń przychodzących. Niektóre interfejsy powinny zezwalać na ruch przychodzący, w tym przypadku chcemy, aby był to VPNtun0
.ufw allow in on tun0
linią.Zdecydowanie zaleca się, aby NIE używać tych dwóch poleceń :
Pozwalanie na pokonanie celu posiadania zapory ogniowej. Niepoprawne jest, że musisz „wpuszczać na tun0”, aby otrzymywać pakiety zwrotne. Chcesz tylko otrzymywać połączenia, o które prosiłeś, w przeciwieństwie do umożliwienia całemu światu łączenia się z tobą. Pozwolenie na to zrobi. Sprawdź proponowaną konfigurację poniżej i zobacz.
Oto przykład szeregu poleceń UFW do użycia z zaporą:
Przykład wyniku:
UWAGA: -Twoje interfejsy mogą być inne, na przykład ubuntu 16.12 używa eno1 i wlp3s0b1. Użyj polecenia „ifconfig”, aby zobaczyć swoje rzeczywiste interfejsy. -1197 UDP jest dość domyślnym, ale może być konieczna jego zmiana dla sieci VPN (np. 443 TCP). - Zwykle usuwam ipv6 (sudo ufw delete 4, powtórz x3)
Co to robi: - Pozwala na połączenia wychodzące przez tunel VPN, jednocześnie blokując wszystko oprócz tunelu VPN i połączeń DNS na ethernet / wifi. Ostrzeżenie poniżej dotyczące problemu z DNS.
Ostrzeżenie: w tym przykładzie można zezwolić na 53 dla żądań DNS, aby openvpn (np. Vpn.somevpnprovider.com) mógł zażądać adresu IP i nawiązać połączenie. Kompromisem jest możliwość wycieku DNS. Użyj dnsleaktest.com, aby upewnić się, że ustawienia VPN tunelują twoje żądania DNS. Dla osób ostrożnych / paranoicznych, pomiń pozwalanie na 53 i zamiast tego wyłącz zaporę ogniową, aby się połączyć, a następnie włącz ponownie po podłączeniu. Z moich powodów VPN zdecydowałem się tego nie robić, ponieważ jest bardziej prawdopodobne, że całkowicie zapomnę zaporę ogniową (np. DNS i tak wycieknie, jeśli openvpn zostanie źle skonfigurowany).
źródło