Frage Wie richte ich eine einfache Firewall auf Ubuntu ein?


Könnte jemand einige einfache Schritte mit Konfigurationsbeispiel geben, wie man einfache Firewall auf Ubuntu einrichtet (nur mit Konsole)? Nur ssh, http und https Zugriff sollte erlaubt sein.


18
2018-04-30 11:16


Ursprung


Sprechen Sie über eine Netzwerkfirewall oder nur eine Systemfirewall? - Brad Gilbert
Was meinst du mit Netzwerk-Firewall? Ist es eine Firewall auf dem Router? Wenn ja, dann habe ich über die Systemfirewall gesprochen. - klew


Antworten:


sudo ufw default verweigern

sudo ufw erlauben http

sudo ufw erlauben https

sudo ufw erlauben ssh

sudo ufw aktivieren


20
2018-04-30 11:23



Wenn ich diese Befehle nacheinander über ssh aufrufen würde, würde ich dann meine Verbindung knacken? - klew
Das glaube ich nicht, aber Sie sollten nachsehen, um sicherzugehen. Dadurch wird auch der Status zwischen Neustarts beibehalten. Sie sollten das also nur einmal tun. - Nerdfest
Ich werde es überprüfen, wenn ich in der Nähe dieses Computers bin ... - klew
Sie könnten es in ein Skript einfügen und es ausführen, und selbst wenn Sie die Verbindung getrennt haben, können Sie danach wieder verbinden. Siehe meine Antwort unten für das Skript. - Hamish Downer
Der vorherige Kommentar ist korrekt. Im Grunde führen Sie den ersten Befehl im obigen Skript zuletzt aus. - Nerdfest


Verwenden Sie dieses Skript.

Entscheiden Sie einfach, ob Sie eingehende ICMP (Ping) erlauben wollen oder nicht.

# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush

# As the default policies, drop all incoming traffic but allow all
# outgoing traffic.  This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT

# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT

# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT

# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT

# Reject all other incoming packets
iptables -A INPUT -j REJECT

14
2018-04-30 11:41





Wie in den Kommentaren zu einer anderen Antwort erwähnt, möchten Sie Ihre Verbindung nicht verlieren, bevor Sie den SSH-Port zulassen. Von der man-Seite:

"Fernverwaltung

Wenn ufw aktiviert oder ufw über sein Initskript gestartet wird, spült ufw seine Ketten. Dies ist erforderlich, damit ufw einen konsistenten Zustand beibehalten kann, aber bestehende Verbindungen (zB ssh) fallengelassen werden kann. ufw unterstützt das Hinzufügen von Regeln vor dem Aktivieren der Firewall, damit Administratoren Folgendes tun können:

ufw allow proto tcp from any to any port 22

bevor Sie 'ufw enable' ausführen. Die Regeln werden weiterhin geleert, aber der SSH-Port wird nach dem Aktivieren der Firewall geöffnet. Bitte beachten Sie, dass ufw die Ketten beim Hinzufügen oder Entfernen von Regeln nicht löscht, sobald ufw aktiviert ist (dies geschieht jedoch beim Ändern einer Regel oder Ändern der Standardrichtlinie). "

Hier ist ein Ansatz, der ein Skript verwendet, um es zu setzen. Sie werden beim Ausführen dieses Skripts ausgeloggt, aber nachdem Sie es ausgeführt haben, können Sie sich über ssh erneut anmelden.

Schreiben Sie folgendes in ein Skript und nennen Sie es start-firewall.sh

#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https

Machen Sie es dann ausführbar und führen Sie es aus

$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh

Um mehr zu erfahren, lesen Sie die Man Seite.


8
2018-04-30 13:40





Wenn Sie sich mit Skripten vertraut machen iptablesSie haben die volle Kontrolle über alle Firewall-Funktionen. Es ist nicht annähernd so freundlich wie Firestarter, aber es kann an der Konsole mit gemacht werden nano/vi Redakteure. Schau dir das an Anleitung auf Ubuntu ausgerichtet.


2
2018-04-30 11:55





QuickTables half mir, Iptables-Regeln zu lernen. Führen Sie einfach das Skript aus, und es wird ein iptables-Skript für Sie generiert ... dann können Sie es öffnen und die zugehörigen Befehle anzeigen, die von den Fragen generiert wurden, die es an Sie gestellt hat. Es ist eine großartige Lernquelle.

Leider wird es nicht mehr gepflegt.

http://qtables.radom.org/


1
2018-04-30 13:43





Ich benutze wirklich gerne Feuerholz (Paket).

Um Setup-Regeln zu erstellen, müssten Sie die Datei / etc / default / firehol bearbeiten und START_FIREHOL = YES ändern

Und du würdest deine /etc/firehol/firehol.conf so aussehen lassen wollen.

version 5

interface any IfAll
    client any AnyClient accept
    server "ssh http https" accept
    # Accept everything from trusted networks
    server anystateless AllInside accept src "10.3.27.0/24"

Einer der großen Vorteile von Firehol ist der Befehl "try". Sie können Ihre Konfigurationsdatei anpassen und einen 'firehol try' durchführen, wenn Sie über ssh verbunden sind und etwas über das, was Sie geändert haben, Ihren Netzwerkzugang zerstört hat, wird firehol die Änderungen rückgängig machen. Damit die Änderungen wirksam werden, müssen Sie commit angeben.


1
2018-04-30 18:46



Firehol ist hervorragend für die Manipulation von Iptables-Regeln. '$ firehol try' "Aktiviert die Firewall, wartet aber, bis der Benutzer das Wort Commit eingibt. Wenn dieses Wort nicht innerhalb von 30 Sekunden eingegeben wird, wird die vorherige Firewall wiederhergestellt." - Gareth
Sooo können Sie Regeln hinzufügen / bearbeiten / entfernen und sie dann testen. Wenn Sie dies über SSH remote tun, wird es Sie nicht von Ihrem eigenen Server sperren! - Gareth


ich würde bevorzugen Ufermauer. Es ist einfach einzurichten und gleichzeitig flexibel.


1
2018-04-30 22:09





Vielleicht solltest du einen Blick darauf werfen http://iptables-tutorial.frozentux.net/iptables-tutorial.html. Außerdem finden Sie weitere Informationen zu lartc.org


0
2018-04-30 11:23





sudo apt-get install firestarter

Dann schauen Sie im Menü System-> Administration nach.


-1
2018-04-30 11:38



Der Fragesteller möchte nur die Konsole verwenden - Mikeage
Ahh, mein Fehler. Alternative. Der Admin kann immer noch ssh -X in den Server und Remote-Firestarter ausführen. - spoulson
Ich würde auch einige X-Server installieren müssen, um ssh -X :) zu starten. - klew
@klew, Sie müssen keinen vollständigen X-Server installieren, um X-Anwendungen über ssh auszuführen. Sie benötigen mehrere Bibliotheken, aber Sie brauchen nicht alles. Für das absolute Minimum benötigen Sie nur xauth und xbase-clients Pakete. - Zoredache