Ich möchte den gesamten Datenverkehr von meiner Ubuntu-Maschine auf das lokale Netzwerk ( eth0
) oder von meinem VPN ( tun0
) beschränken. Es sollte möglich sein, den Router mit dem lokalen Netzwerk zu verbinden, aber es sollte nicht möglich sein, das lokale Netzwerk ohne Verwendung des VPN zu verlassen.
Da ich keine Erfahrung mit iptables habe und keine Anleitung finden konnte, habe ich es mit ufw versucht, aber ohne Erfolg.
Vielen Dank für einige Hinweise oder Codeschnipsel, die der Sache näher kommen!
Antwort1
Sie sollten die INPUT-Kette der Filtertabelle mit der Standardaktion DROP bearbeiten und dann ACCEPT-Regeln für eingehende Pakete (-i) auf jeder Schnittstelle festlegen. Zur Verbesserung der Sicherheit könnten Sie auch das Subnetz des Quellhosts erzwingen, aber die folgenden Regeln reichen aus.
iptables -t filter -p INPUT DROP
iptables -t filter -A INPUT -i eth0 -j ACCEPT
iptables -t filter -A INPUT -i tun0 -j ACCEPT
iptables -t filter -A INPUT -i lo -j ACCEPT
Wenn Sie dasselbe auch für den Datenverkehr erzwingen möchten, der den Host verlässt, gehen Sie außerdem wie folgt vor:
iptables -t filter -p OUTPUT DROP
iptables -t filter -A OUTPUT -o eth0 -j ACCEPT
iptables -t filter -A OUTPUT -o tun0 -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
Wenn Sie dies jedoch tun, können Sie die anderen Schnittstellen auch gleich weglassen. Außerdem lo
ist es vorhanden, weil es sich um die Loopback-Schnittstelle handelt. Ohne diese Regeln würde Loopback nicht mehr funktionieren.
Beachten Sie, dass diese Regeln bei einem Host, der ein Router ist, nicht für den von ihm weitergeleiteten Datenverkehr gelten (nur für den von ihm selbst generierten Datenverkehr oder den Datenverkehr, der für ihn bestimmt ist und nicht durch ihn geleitet wird).