Ubuntu 14.04 als Gateway / Router und Firewall


16

Mein aktuelles System-Setup ist Ubuntu 14.04 Desktop 64 Bit und ich verwende das Internet von einem Router mit einer öffentlichen IP

eth0 - WAN Public IP 182.x.x.x  
eth1 - LAN private IP 192.168.0.1

Jetzt möchte ich diese Verbindung mit meinem System als an andere Computer verteilen. GatewayMeine System-IP ist 192.168.0.1und andere Computer im Netzwerk verwenden statische IP 192.168.0.2und 192.168.0.255 als staticund / oder DHCP.

Außerdem möchte ich eine Firewall auf meinem System einrichten, damit ich den Datenverkehr anderer Systeme im Netzwerk überwachen und steuern kann.

Antworten:


15
  1. Öffnen Sie ein Terminal Ctrl+ Alt+T

  2. Geben Sie folgenden Befehl ein, um die interfacesDatei zu bearbeiten :

    sudo vim /etc/network/interfaces
    
  3. Bearbeiten Sie die Datei mit den folgenden Zeilen: (Fügen Sie Ihr netmaskund gateway)

    auto lo 
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
    address 182.x.x.x 
    netmask  x.x.x.x 
    gateway x.x.x.x
    
    auto eth1
    iface eth1 inet static 
    address 192.168.0.1
    netmask x.x.x.x
    
  4. Jetzt editieren /etc/sysctl.confund auskommentieren:

    # net.ipv4.ip_forward=1
    

    so dass es liest:

    net.ipv4.ip_forward=1
    

    und speichern Sie es durch Eingabe

    sudo sysctl -p /etc/sysctl.conf

  5. Geben Sie die folgenden Befehle in das Terminal ein, um IP-Masquerading zu aktivieren:

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
    sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    
    sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    

Update: Behebung eines seltsamen "-–Status", der zum Fehlschlagen des Befehls führte, und Behebung von nat MASQUERADE auf eth0 (WAN-Schnittstelle)


alles wie empfohlen erledigt ... aber wenn ich / etc / network / interfaces bearbeite und den Dienst neu starte, verbindet er sich automatisch mit eth1 und wird nicht über eth0 mit dem Internet verbunden. Wenn ich die Verbindung im GUI-Modus bearbeite, wird mit eth0 eine Verbindung zum Internet hergestellt. Das Problem ist nun, dass ich meinen Client-Computer nicht über IP 192.168.0.5/nm.255.255.255.0/gw.192.168.0.1 mit dem Internet verbinden kann. irgendein Vorschlag?
Santi Varghese

3
Ich möchte hinzufügen, dass Sie nach dem Ändern der Zeile net.ipv4.ip forward=1ausführen möchten sudo sysctl -p /etc/sysctl.conf, damit der neue Wert wirksam wird.
Samuel Li

2
Sie haben die Geräte in den letzten beiden Zeilen in Schritt 5 immer noch ausgetauscht, und Sie haben keine Erwähnung der Standardsicherheit (dh Forward sollte eine DROP-Richtlinie haben).
Chreekat

3

Der Kommentar von @ chreekat ist richtig, dass die Ethernet-Adapter in Schritt 5 von @ Anbus Antwort ausgetauscht wurden und wie gezeigt (Stand 21.02.2017) ein RIESIGES SICHERHEITS-LOCH erstellt, das jedem im öffentlichen Netzwerk uneingeschränkten Zugriff auf das private Netzwerk ermöglicht .

Die korrigierte Konfiguration für Schritt 5 ist unten gezeigt.

Betriebstheorie: (Regel 2) Pakete, die aus dem öffentlichen Netzwerk (eth0) eingehen, werden nur dann für die Weiterleitung an das private Netzwerk (eth1) akzeptiert, wenn sich das eingegangene öffentliche Paket auf eine Konversation bezieht, die von einem Host am aufgebaut wurde das private Netzwerk. (Regel 3) Akzeptieren Sie alle Pakete, die vom privaten Netzwerk (eth1) eingehen, und leiten Sie sie an das öffentliche Netzwerk (eth0) weiter.

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

0

Das ist, was ich benutze, funktioniert immer gut. Eine Kombination verschiedener Tutorials. Auch auf Ubuntu 16.04LTS getestet.

Schritt A - Vergewissern Sie sich, dass ufw installiert ist

sudo apt-get install ufw

Schritt B - Konfigurieren Sie Ihre Netzwerkschnittstellen .

sudo nano /etc/network/interfaces

Konfigurieren Sie die Interface- Datei wie folgt:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The WAN primary network interface
iface eth0 inet static
        address 182.xxx.xxx.xxx
        netmask xxx.xxx.xxx.xxx
        gateway xxx.xxx.xxx.xxx

#LAN side interface
auto eth1
iface eth1 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        address 192.168.0.1

Speichern Sie die Datei, indem Sie STRG-X in nano oder einem anderen von Ihnen bevorzugten Editor auswählen.

Schritt C - IP-Weiterleitung zulassen . Stellen Sie die Weiterleitung ein. Bearbeiten Sie die Datei /etc/sysctl.conf

sudo nano /etc/sysctl.conf

Entfernen Sie den Kommentar in dieser Zeile # net.ipv4.ip_forward=1, damit er " net.ipv4.ip_forward=1 Änderungen speichern" lautet, und fahren Sie mit dem nächsten Schritt fort.

Schritt D - Maskierungs- / Weiterleitungsregeln

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Persist iptables Änderungen

sudo su
sudo iptables-save > /etc/iptables.rules
sudo nano /etc/network/if-pre-up.d/iptables

Geben Sie diesen Inhalt ein:

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

Änderungen speichern Dann nächste iptables-Datei bearbeiten / erstellen

sudo nano /etc/network/if-post-down.d/iptables

Geben Sie diesen Inhalt ein:

#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.rules ]; then
    iptables-restore < /etc/iptables.rules
fi
exit 0

Änderungen speichern. Machen Sie beide Dateien ausführbar

sudo chmod +x /etc/network/if-post-down.d/iptables
sudo chmod +x /etc/network/if-pre-up.d/iptables

Schritt E - Mit der UFW-Konfiguration abschließen

sudo nano /etc/default/ufw

Ändern Sie die Parameterweiterleitungsrichtlinie, um sie zu akzeptieren

DEFAULT_FORWARD_POLICY="ACCEPT"

Änderungen speichern.

Ich habe meine SSH auf Port 49870, daher habe ich auch ufw erlaubt , Verbindungen auf diesem Port zu akzeptieren:

sudo ufw allow 49870

Schritt F - Vergessen Sie nicht, ufw zu aktivieren .

sudo ufw enable

Starten Sie zu diesem Zeitpunkt einfach Ihr System neu. Dann können alle LAN-Geräte es als Hauptgateway verwenden. Auf einer Seite zur Kenntnis, UFW ist sehr bequem , Firewall - Einstellungen zu verwalten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.