Header pic

EASYFW - Easy firewalling with iptables (Linux)

https://kindconsultancy.com/wp-content/uploads/2017/05/firewall-146529_1280-1024x512.png

EASYFW ist eine einfache Möglichkeit iptables und ip6tables zu managen, welches auf den gängigen Linux-Systemen als Firewall zum Einsatz kommt. Es ist eine von mir erstellte Sofware, die ein Arbeiten mit iptables angenehmer gestaltet. Dieses Tutorial erklärt euch, wie ihr EASYFW verwenden könnt.

Um effektiv mit EASYFW zu arbeiten, ist die Verwendung der Shell als root (kein anderer sollte auch die Firewall bearbeiten dürfen) sinnvoller als alles über die GUI einzurichten.

Inhalt:

  1. Download
  2. Installation
  3. Einrichtung
  4. Links und Quellen


Download

1. Download der Datei mit z.B. wget:

wget https://www.toxic-os.de/cloud/data/easyfw_setup.sh.txt

2. Entfernen der Ändung .txt:

mv easyfw_setup.sh.txt easyfw_setup.sh

3. Die Datei ausführbar machen:

chmod +x easyfw_setup.sh


Installation

1. Die Datei ausführen:

./easyfw_setup.sh --install

⚠ Wichtige Informationen:

Wenn iptables schon verwendet wurde, wird die aktuelle Konfiguration gespeichert in:

  1. /opt/easyfw/firewall4_old
  2. /opt/easyfw/firewall6_old

Dieses Programm benutzt den Text-Editor joe. Wenn ein anderer verwendet werden soll, müssen die Dateien im Nachgang angepasst werden:

  1. /opt/easyfw/fw4
  2. /opt/easyfw/fw6
Oder man nennt den Namen des zu verwendenen Texteditor, nachdem joe installiert werden soll, indem man die Installation beneint.

2. Diese Meldung mit Enter bestätigen.

3. Soll joe heruntergeladen und installiert werden? - Mit Y (Ja) oder N (Nein) antworten

Folgendes passiert:

Create directory:
/opt/easyfw/

Create files:
- firewall4 (full protected iptables config file)
- firewall4_default (restoring iptables config file)
- firewall4_old (backuped iptables config file)
- firewall6 (ull protected ip6tables config file)
- firewall6_default (restoring ip6tables config file)
- firewall6_old (backuped ip6tables config file)
- fw4 (write into iptables config file)
- fw6 (write into ip6tables config file)
- fwhelp (help file)
- fwload (file to enable firewall rules)
- fwrestore (file to disable firewall rules)
- fwshow (file to show firewall rules)
- fwtail (live log in syslog)

Write content in files...

Make files executable...

Create symbolic links in /usr/local/bin/:
- fw4
- fw6
- fwload
- fwrestore
- fwshow
- fwtail

⚠ Wichtige Informationen:

Niemals die Dateien firewall4_default und firewall6_default ändern.
Wenn iptables dauerhaft gespeichert werden soll, muss "fwload" in den runlevel integriert, oder iptables-persistent installiert und eingerichtet werden.

4. Diese Meldung mit Enter bestätigen.



Einrichtung

1. Wurden schon Regeln erstellt und sollen weiter verwendet werden, müssen sie aus den Dateien firewall4/6_old zurückgeschrieben werden:

cd /opt/easyfw
cp firewall4_old firewall4
cp firewall6_old firewall6
fwload

3. fw4 (IPv4) oder fw6 (IPv6) ausführen:

fw4
fw6

4. Regeln eintragen (Beispiele):

# Generated by iptables-save v1.4.21 on Mon May 7 08:39:07 2018
*filter
:INPUT DROP [15:3298]
:FORWARD DROP [0:0]
:OUTPUT DROP [6896:3259559]
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
Hier kommen jetzt die Regeln hin...

⚠ Wichtige Informationen:

Setzt man z.B. :OUTPUT ACCEPT, muss man keine OUTPUT-Regeln anlegen, da alles nach Außen durchgelassen wird (wäre für Clients eine Idee). Die ersten Regeln (lo) geben alles für den Loopback frei - das MUSS! sein.

Linux-Clients

Ins Internet surfen (http):

-A INPUT -i eth0 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

Ins Internet surfen (https):

-A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

DNS (mit speziellem DNS-Server):

-A INPUT -s 172.16.2.11/32 -i eth0 -p udp --sport 53 -j ACCEPT
-A OUTPUT -d 172.16.2.11/32 -i eth0 -p udp --dport 53 -j ACCEPT

Linux-Server

Webserver (http):

-A INPUT -i eth0 -p tcp --sport 1024:65535 --dport 80 -j ACCEPT
-A OUTPUT -o eth0 -p tcp --sport 80 --dport 1024:65535 -j ACCEPT

Webserver (https):

-A INPUT -i eth0 -p tcp --sport 1024:65535 --dport 443 -j ACCEPT
-A OUTPUT -o eth0 -p tcp --sport 443 --dport 1024:65535 -j ACCEPT

SSH-Server (mit eingeschränktem Zugriff):

-A INPUT -s 123.123.123.194/28 -i eth0 -p tcp --sport 1024:65535 --dport 22 -j ACCEPT
-A OUTPUT -d 123.123.123.194/28 -o eth0 -p tcp --sport 22 --dport 1024:65535 -j ACCEPT

Nach diesem Schema kann man nun alle Regeln anlegen, die man benötigt. Wer weitgehendere Erfahrungen in iptables hat, kann natürlich andere Regeln eintragen.

5. Datei speichern (mit joe: Strg + k → x)

⚠ Wichtige Informationen:

Werden die Regeln mit fwload gespeichert, wirken sie sofort!

6. Regeln übertragen (Beispiele):

fwload

Möchte man alles wieder freigeben (restore), dann:

fwrestore

Möchte man das aktive Regelwerk sehen, dann:

fwshow

Möchte man gedropte Pakete im Livelog sehen, dann:

fwtail

Möchte man die Hilfe sehen, dann:

fwhelp

Links und Quellen

Sollten Sie Fragen, Anregungen oder Verbesserungsvorschläge haben (jeder kann sich ja täuschen), dann senden Sie mir bitte via Kontakt eine Nachricht zu. Vielen Dank!

EASYFW zum Download:
download

05.05.2018 - 18:54 Uhr - Oliver Stech