Home Internet Gateway. Erstes Setup eines 6-Port-Minicomputers unter Ubuntu Server 20.04 LTS


Im Internet gibt es unzählige Informationen zum Einrichten eines Servers unter Ubuntu, aber bei jedem Schritt finden Sie Momente, die für Anfänger nicht offensichtlich sind. Ich möchte meine Erfahrungen teilen und möglicherweise jemandes Problem lösen. In diesem Artikel erfahren Sie, wie Sie einen Multiport-Server (6 Ports) konfigurieren: Netplan, DHCP-Server, UFW (Uncomplicated Firewall). Und jetzt das Wichtigste zuerst.

Einführung


Ich habe das Internet auf 500 Mbit / s aktualisiert, und es war Zeit, den 100-Mbit-Server in Angriff zu nehmen, der auf Pentium 3 funktionierte und bereits am Rande stand. Die Wahl fiel auf das chinesische Tier . Alles, was benötigt wird, ist verfügbar, der Verbrauch im normalen Modus überschreitet nicht 15 W, es gibt einen Leistungsspielraum für zusätzliche Aufgaben.

Für eine ruhige, zusätzliche aktive Kühlung:


Ich werde die Betriebssysteminstallation nicht malen ("OK - Weiter - Weiter"). Ich stelle nur fest, dass während der Installation mindestens eine Netzwerkschnittstelle für den Zugriff auf das Internet konfiguriert werden muss.

Der Einfachheit halber verwende ich Midnight Commander und seinen Texteditor. Wir werden vom Root-Benutzer aus arbeiten:

sudo su

Installieren Sie MC:

apt-get install mc

Nachdem wir Ubuntu Server installiert haben, konfigurieren wir zunächst die verbleibenden Netzwerkschnittstellen.

Netplan


In neueren Versionen von Ubuntu wurde das Dienstprogramm Netplan angezeigt, mit dem Sie das Netzwerk in einem einheitlichen Format konfigurieren und einen Netzwerkmanager auswählen können, mit dem Sie arbeiten möchten. Standardmäßig wird Systemd-networkd verwendet, aber ich habe mich für NetworkManager entschieden, da ich die Cockpit-Weboberfläche installiert habe, die NM verwendet, um einen Teil der Informationen anzuzeigen.
Die Netplan-Konfigurationssyntax ist sehr streng und ein zusätzlicher Bereich oder eine zusätzliche Registerkarte kann einen Fehler verursachen.

Weitere Details zur Funktionalität wurden bereits von habr.com/de/post/448400 beschrieben. Verschiedene Beispiele finden Sie auf der Website netplan.io/examples .

Sehen wir uns die Namen der Schnittstellen an:

ip a

Gehen Sie auf die Datei / etc / netplan Verzeichnis und öffnen (F4 für MS) die 50-cloud-init.yaml Datei . Für die Netzwerkschnittstelle, über die eine Verbindung zum Internet hergestellt wird, bestimmen wir den Empfang der Einstellungen durch dhcp ( dhcp4: true ). In meinem Fall ist es enp6s0. Geben Sie im Übrigen false an und fügen Sie den optionalen Parameter : true hinzu , weil Die Schnittstelle ist möglicherweise mit nichts verbunden.

Ich habe Bridge verwendet, um die Schnittstellen mit dem lokalen Netzwerk zu verbinden, aber vielleicht wäre es korrekter, vlan zu verwenden. Erstellen wir eine LAN- Bridge , legen Sie eine gemeinsame IP-Adresse und einen DNS-Server fest und geben Sie die zu kombinierenden Schnittstellen an:

  bridges:
    lan-br:
      dhcp4: false
      addresses: [ 192.168.13.1/24 ]
      nameservers: 
        addresses: [ 192.168.13.1 ]
      interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]

Ich werde meinen eigenen DNS-Server haben, daher gebe ich die Adresse meines Servers im Feld Nameserver an. Sie können beispielsweise 8.8.8.8 (Google) angeben. Wir geben die Version und den Manager an. Das Ergebnis sollte ungefähr so ​​aussehen:

network:
  ethernets:
    enp1s0:
      dhcp4: false
      optional: true
    enp2s0:
      dhcp4: false
      optional: true
    enp3s0:
      dhcp4: false
      optional: true
    enp4s0:
      dhcp4: false
      optional: true
    enp5s0:
      dhcp4: false
      optional: true
    enp6s0:
      dhcp4: true
      nameservers:
        addresses:
        - 127.0.0.1
        - 192.168.13.1
  bridges:
    lan-br:
      dhcp4: false
      addresses: [ 192.168.13.1/24 ]
      nameservers: 
        addresses: [ 192.168.13.1 ]
      interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]
  version: 2
  renderer: NetworkManager

Wir speichern die Datei und überprüfen / wenden die Konfiguration an:

netplan try

Wenn alles richtig gemacht ist, zeigt 'ip a' ungefähr so:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:57 brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:58 brd ff:ff:ff:ff:ff:ff
4: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:59 brd ff:ff:ff:ff:ff:ff
5: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5a brd ff:ff:ff:ff:ff:ff
6: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5b brd ff:ff:ff:ff:ff:ff
7: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5c brd ff:ff:ff:ff:ff:ff
    inet 188.32.236.197/19 brd 188.32.255.255 scope global dynamic noprefixroute enp6s0
       valid_lft 2898sec preferred_lft 2898sec
    inet6 fe80::ee8:2cff:fe68:5b5c/64 scope link 
       valid_lft forever preferred_lft forever
8: lan-br: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.13.1/24 brd 192.168.13.255 scope global noprefixroute lan-br
       valid_lft forever preferred_lft forever
    inet6 fe80::ee8:2cff:fe68:5b58/64 scope link 
       valid_lft forever preferred_lft forever


DHCP-Server


Konfigurieren Sie einen DHCP-Server so, dass Clients IP-Adressen automatisch empfangen können.

apt-get install isc-dhcp-server

Bearbeiten Sie in der Datei / etc / default / isc-dhcp-server die Zeile:

INTERFACESv4="lan-br"

Gehen Sie zu / etc / dhcp , öffnen Sie dhcpd.conf und schreiben Sie die Einstellungen vor:

option domain-name "your-domain-name";
option domain-name-servers 192.168.13.1;

subnet 192.168.13.0 netmask 255.255.255.0 {
    range 192.168.13.100 192.168.13.250;
    option subnet-mask 255.255.255.0;
    option routers 192.168.13.1;
    option broadcast-address 192.168.13.255;
}

Starten Sie den DHCP-Server neu:

service isc-dhcp-server restart

Kunden sollten jetzt automatisch Adressen erhalten.

Ufw


UFW (Uncomplicated Firewall) - ein Tool zur einfacheren Einrichtung von iptables. Richten Sie eine Firewall und eine Paketweiterleitung zwischen Schnittstellen ein. Gehen Sie zu / etc / ufw und kommentieren Sie die Zeile in der Datei sysctl.conf aus:

net/ipv4/ip_forward=1

Wenn Sie über ssh verbunden sind, öffnen Sie Port 22, bevor Sie beginnen:

ufw allow ssh

Schalten Sie UFW ein und überprüfen Sie den Status:

ufw enable
ufw status verbose

Legen Sie die Standardrichtlinien fest:

ufw default deny incoming
ufw default allow outgoing
ufw default allow routed

Zugriff über das lokale Netzwerk zulassen:

ufw allow in on lan-br to any

Konfigurieren Sie NAT. Öffnen Sie die Datei before.rules und schreiben Sie Folgendes vor den Filterblock * :

*nat
:POSTROUTING ACCEPT [0:0]
#local
-A POSTROUTING -s 192.168.13.0/24 -o enp6s0 -j MASQUERADE
COMMIT

Speichern und neu starten ufw:

ufw disable
ufw enable

Lassen Sie uns iptables überprüfen, unsere Zeile sollte erscheinen:

iptables -t nat -L -v

In diesem Fall kann die grundlegende Serverkonfiguration als abgeschlossen betrachtet werden.

Fazit


Ich habe das Problem der Konfiguration des DNS-Servers nicht angesprochen, da ich den zweiten Teil veröffentlichen möchte, in dem die Konfiguration von Dnscrypt-proxy als DNS-Server für das lokale Netzwerk beschrieben wird.

Nähere Informationen:


All Articles