ubuntuusers.de

Ubuntu Gateway mit Firewall IPV4 & IPV6

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

antonbracke

Anmeldungsdatum:
10. Juli 2016

Beiträge: 10

Hallo zusammen,

ich habe mich entschieden meinen Ubuntu-Server hinter einer Fritz-Box als Gateway mit Firewall zu betreiben. Ich verwende dafür zwei Gigabit-Netzwerkkarten.

Lokales Netz <p2p1 192.168.255.1> Ubuntu-Server <eth0 192.168.172.22> Fritz-Box

Nun habe ich ein Iptables-Script geschrieben:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#! /bin/bash
iptables="/sbin/iptables"

sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.default.forwarding=1
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv6/conf/all/forwarding

# delete all existing rules
$iptables -F

# set default chain policies
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptables -P OUTPUT DROP

# incoming @ eth0
$iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
$iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
$iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j DROP

# incoming @ p2p1
$iptables -A INPUT -i p2p1 -j ACCEPT

# outgoing
$iptables -A OUTPUT -j ACCEPT

# loopback
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT

# nat rules
$iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
$iptables -A FORWARD -i p2p1 -o eth0 -j ACCEPT
$iptables -A FORWARD -i eth0 -o p2p1 -m state --state RELATED,ESTABLISHED -j ACCEPT


# routing
route add default gw 192.168.172.1
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
auto lo
iface lo inet loopback

auto p2p1
iface p2p1 inet static
        address 192.168.255.1
        netmask 255.255.255.0
        gateway 192.168.255.1
        dns-nameservers 192.168.255.1 8.8.8.8

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 auto

Funktioniert unter IPV4 auch schon recht gut. Die Fritz-Box hat das Gateway als Exposed-Host (alle Porsts werden durch geschickt, welche nicht an die Fritz gehen...)

Allerdings will ich jetzt auch ipv6 wieder nutzen können ... xD

Wie gehe ich dabei am besten vor?

Hat jemand noch Sicherheitslücken bei meiner jetzigen Firewall entdeckt (Verbesserungen jeder Art?)?

Gruß Anton

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

antonbracke schrieb:

Allerdings will ich jetzt auch ipv6 wieder nutzen können ... xD Wie gehe ich dabei am besten vor?

Was meinst du genau? IPv6-Adressen können ebenfalls über die Datei /etc/network/interfaces konfiguriert werden. Als Firewall kannst du ip6tables nehmen.

Altnernativ gibt es seit Kernel 3.13 auch nftables, welches iptables und ip6tables perspektivisch ersetzen soll. nftables bietet aktuell noch nicht den gesamten Funktionsumfang von iptables, sollte aber für die meisten Setups ausreichend sein. In der c't 2015/18 gibt es einen guten Artikel mit Beispiel dazu. Auch hier findet man eine Übersicht.

antonbracke

(Themenstarter)

Anmeldungsdatum:
10. Juli 2016

Beiträge: 10

Ich bin noch nicht ganz der Profi mit IPV6... xD Meine Fritz-Box erhält ja ein IPV6-Präfix vom ISP und diesen muss ich ja jetzt irgendwie dem Server mitteilen, damit dieser dann IPV6-Adressen per DHCP verteilen kann. Als DHCP-Server nutze ich dnsmasq. Kann der IPV6 Prefixe verteilen und wie sage ich ihm, wie das von der Fritz-Box lautet?

Wenn ich soweit bin, dann benötige ich ja noch die gleichen Firewalls (das Prinzip mit Forward etc) wie bei IPV4, jedoch erinnere ich, dass das System bei IPV6 etwas anders läuft. Muss ich nicht die Verbindung zu jedem Rechner einzelnd einstellen oder macht ip6tables sowas von selbst?

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

antonbracke schrieb:

Meine Fritz-Box erhält ja ein IPV6-Präfix vom ISP und diesen muss ich ja jetzt irgendwie dem Server mitteilen, damit dieser dann IPV6-Adressen per DHCP verteilen kann.

Das wird nicht funktionieren. Entweder die Fritzbox spielt DHCP und verteilt die Adressen an die Clients oder du musst den Präfix im DHCP auf dem Ububntu-Server fest eintragen. Eine andere Möglichkeit kenne ich nicht.

Kann der IPV6 Prefixe verteilen und wie sage ich ihm, wie das von der Fritz-Box lautet?

Der dnsmasq kann IPv6. Die Fritzbox kann zumindest IPv6-Subnetze an weitere Router weiterreichen. Ob man damit auch das komplette Präfix vom ISP weitergeben kann, weiß ich nicht.

Wenn ich soweit bin, dann benötige ich ja noch die gleichen Firewalls (das Prinzip mit Forward etc) wie bei IPV4, jedoch erinnere ich, dass das System bei IPV6 etwas anders läuft.

Was läuft anders?

Muss ich nicht die Verbindung zu jedem Rechner einzelnd einstellen oder macht ip6tables sowas von selbst?

Ich verstehe dein Problem nicht.

antonbracke

(Themenstarter)

Anmeldungsdatum:
10. Juli 2016

Beiträge: 10

Ich dachte ich könnte das Präfix mit genau der Einstellung weiterleiten. Nur wie man sowas am gateway empfängt und einbaut ist mir halt rätselhaft...

misterunknown schrieb:

antonbracke schrieb:

Wenn ich soweit bin, dann benötige ich ja noch die gleichen Firewalls (das Prinzip mit Forward etc) wie bei IPV4, jedoch erinnere ich, dass das System bei IPV6 etwas anders läuft.

Was läuft anders?

Muss ich nicht die Verbindung zu jedem Rechner einzelnd einstellen oder macht ip6tables sowas von selbst?

Ich verstehe dein Problem nicht.

Bei IPV6 bekommt jeder Rechner eine Public-IP. Damit man die Clients nicht einfach so erreichen kann muss man eine Firewall einrichten, die den Zugriff verbietet. Bei IPV4 hat man ein NAT-System, das heißt die Anfragen werden maskiert und scheinbar vom Gateway gestellt und nur das Gateway kann dann die Antwort auf den Rechner weiterleiten.

Das verstehe ich doch so richtig, oder?

Kann ich meine IPV4-Firewall denn eigentlich so nutzen?

antonbracke

(Themenstarter)

Anmeldungsdatum:
10. Juli 2016

Beiträge: 10

Ich bin noch immer nicht weiter. Wie erhalten Router ihr Präfix vom Provider? Nach dem selbem Prinzip sollte ich doch auch mit der Fritzbox dem Ubuntu-Server sein Präfix mitteilen können. Dafür wird es doch Software geben... Kann mir da vielleicht jemand nochmal Tipps oder passende Lektüre geben. Selber findet man das nicht wirklich.

antonbracke

(Themenstarter)

Anmeldungsdatum:
10. Juli 2016

Beiträge: 10

Nach langem Suchen und Lesen, habe ich jetzt die Lösung wie man ein IPV6 Präfix weiterverteilen kann.

Die Fritzbox erhält vom ISP ein /62 Präfix. Dieses kann Sie an Ihre Clienten vergeben und standardmäßig vergibt sie jedem PC ein /64 Subnetz. Das scheinen etwas viele IPs für ein Gerät zu sein, aber man hat bei IPv6 so viele Adressen, dass man sich dachte nehmen wir doch so viele, dass man wiederum eine einfache Syntax hat und sodass in diesem Fall einfach die Mac-Adresse in die IP eingebaut werden kann.

Damit dann alles funktioniert stellt die Fritzbox nach diesem AVM-Arktikel https://avm.de/service/fritzbox/fritzbox-3270/wissensdatenbank/publication/show/1239_IPv6-Subnetz-im-FRITZ-Box-Heimnetz-einrichten/ ein und muss dann das Gateway so konfigurieren, dass es sich ein Subnetz von der Fritzbox nimmt und dieses dann per dnsmasq wiederum aufteilt.

Per apt die Software installieren:

1
apt install wide-dhcpv6 dnsmasq

dann die Config von wide-dhcpv6 anpassen:

 Default dhpc6c configuration: it assumes the address is autoconfigured using
# router advertisements.

profile default
{
        information-only;

        request domain-name-servers;
        request domain-name;

        script "/etc/wide-dhcpv6/dhcp6c-script";
};

interface enp1s0 { # external facing interface (WAN)
        send ia-na 1;
        send ia-pd 1;
        send rapid-commit;
        request domain-name-servers;
        request domain-name;

        script "/etc/wide-dhcpv6/dhcp6c-script";
};

id-assoc pd 1 {
        prefix ::/63 infinity;

        prefix-interface enp3s0 {
                sla-len 1;
                sla-id 0;
                ifid 10;
        };
};

id-assoc na 1 {
};

enp1s0: Verbindung zur Fritzbox enp3s0: LAN

Wichtig: sla-len: 64 - 63 (der Wert von "prefix") = 1 sla-id: 0 (iwi das erste Segment, damit kann man *glaub ich* die Subnetze für mehrere LAN-Netzwerke aufteilen z.B. Lan und WLan) http://blog.kylemanna.com/ipv6/2013/09/29/using-native-ipv6-via-comcast-in-san-francisco/

und dann noch dnsmasq:

...
dhcp-range=::a,constructor:enp3s0,ra-names,1h
enable-ra

Jetzt läuft mein IPv6 schon mal recht gut ... Die IP-Tables sind ziemlich genau gleich wie bei IPv4 jedoch kann man das NAT-Routing weglassen also "MASQUERADE" und man sollte den Zugriff auf den ipv6-icmp Port zulassen.

iptables -A INPUT -i enp1s0 -p ipv6-icmp -j ACCEPT

Ich hoffe so kann man das stehen lassen. War zumindest die erste und beste Konfiguration bei der mein IPv6 lief xD

Gruß Anton

Antworten |