Wenn wir hier von einem Firewallrouter reden, dann braucht es Shorewall im Grunde nicht. Debian bringt mit IPtables, bzw. ab Buster NFtables alles mit, was man zur Installation einer Firewall braucht.

Mit Shorewall bekommen wir ein Verwaltungsprogramm für IPtables. Eine Firewall direkt mit IPtables aufzubauen und zu verwalten empfand ich als echte Quälerei. ( NFtables übernimmt die Syntax von IPtables und ergänzt sie, heisst NFtables kann natürlich mehr, arbeitet schneller usw. ) Mit Shorewall schafft man das auch ohne die Notwendigkeit selber Scripte schreiben zu müssen. Shorewall ist allerdings, noch, nicht auf NFtables migriert und nutzt weiterhin die IPtablessyntax, nutzt also nicht alle Verbesserungen.
Das brauch uns aber nicht stören.

Gleich zu Beginn möchte ich HIER auf die offizielle Seite hinweisen, Shorewall kann, wie IPtables, weit mehr als wir hier aufmachen.

Wie inzwischen gewohnt müssen wir Shorewall als erstes installieren.

gateway: ~ #apt install shorewall

gateway: ~ #cd /etc/shorewall
gateway: /etc/shorewall # l
insgesamt 16
-rw-r—– 1 root root  960 Mär 24  2019 conntrack
-rw-r—– 1 root root  623 Mär 24  2019 params
-rw-r–r– 1 root root 5306 Mär 24  2019 shorewall.conf
gateway: /etc/shorewall #

In der Grundinstallation hat Shorewall weder eine Konfiguration gesetzt, noch ist der Dienst gestartet, entgegen dem üblichen Debianverhalten ( sobald ein Dienst installiert wurde, wird er auch automatisch aktiviert wenn man das nicht im Vorfeld beim install Befehl unterbindet ).
Für Shorewall hat das gute Gründe, könnten die Konfigurationen doch unterschiedlicher kaum sein. Was will man da aktivieren als Standard?
Aber Shorewall gibt uns Beispielkonfigurationen, die wir uns kopieren können.
Doch wo sind diese jetzt? Wer jetzt nicht in der Dokumentation danach suchen möchte, hat zwei Möglichkeiten danach zu suchen, ( ok, viel mehr als zwei ):

gateway: /etc/shorewall #find / -name shorewall find ist ein kleines Ungeheuer, die Möglichkeiten dieses Befehls sind atemraubend, hier setzen wir ihn in seiner primitivsten Form ein. find / ( wo sucht find, mit / überall ) -name shorewall ( nach allem was genau shorewall heisst ).

/etc/default/shorewall
/etc/init.d/shorewall
/etc/shorewall
/etc/logrotate.d/shorewall
/usr/share/lintian/overrides/shorewall
/usr/share/doc/shorewall
/usr/share/shorewall
/usr/sbin/shorewall
/var/lib/shorewall

Das bringt uns jetzt nicht wirklich weiter, sehen wir doch nur, wo überall ein Verzeichnis Namens shorewall liegt, aber wo sind jetzt die Beispielkonfigurationen? Was haben wir hier?
/etc/default
ist ein Ort wo Standardkonfigurationen liegen können, dort werden wir später fündig, wenn wir shorewall schon beim booten starten wollen.
/etc/init.d
beherbergt die Startscripte nach altem Muster.
/etc/shorewall
ist der Ort für unsere Konfiguration, den kennen wir schon.
/etc/logrotate.d
ist der Ort für Scripte, die automatisch die Logfiles rotieren, damit sie nicht unendlich groß werden. Das schauen wir uns später im Kapitel Aufräumen nochmal genauer an.
/usr/share
der Ort für statische, nicht verändernde Dateien quasi das Gegenteil von /var
/var
der Ort für sich verändernde Dateien

Suchbegriffe wie Linux Verzeichnisstruktur vertiefen das hier enorm.
Ein weicher Hinweis auf den Speicherort für die Beispiele könnte /doc sein, wollen wir dort nachschauen, dann mit

gateway: /etc/shorewall #l /usr/share/doc/shorewall

aber vorher möchte ich noch eine weitere, u.U. schnellere Suchmethode vorstellen, locate. Mit find lässt sich das zwar auch noch besser machen, aber locate ist gerade für den Einsteiger ein wirklich nettes Ding. Ein Blick in
man find
und Du weisst was ich meine…
Dies muss allerdings auch nachinstalliert werden mit einem kurzen
gateway: /etc/shorewall #apt install locate
und dann kurz die Datenbank dazu gebaut
gateway: /etc/shorewall #updatedb
und
gateway: /etc/shorewall #locate shorewall
zeigt uns alle Verzeichnisse mit Inhalt in denen irgendwas mit shorewall vorkommt, und das ratzfatz.
Wir finden in der nun langen Liste
/usr/share/doc/shorewall/examples/three-interfaces/ und schauen uns das mal genauer an:
gateway: /etc/shorewall #l /usr/share/doc/shorewall/examples/three-interfaces/
wir sehen u.A. eine README.txt Datei. Der „Aufforderung“ kommen wir nach
gateway: /etc/shorewall #cat /usr/share/doc/shorewall/examples/three-interfaces/README.txt
und finden „nur“ den Verweis auf die DOKU auf shorewall.org, also schauen wir uns das auch mal an. Nach etwas suchen und lesen werden wir fündig:
Note to Debian Users
If you install using the .deb, you will find that your /etc/shorewall directory is almost empty. This is intentional. The released configuration file skeletons may be found on your system in the directory /usr/share/doc/shorewall/default-config. Simply copy the files you need from that directory to /etc/shorewall and modify the copies.
… Wir kopieren die Dateien aus dem Beispielverzeichnis in unser Arbeitsverzeichnis:

Neue Befehle wollen jetzt eingeführt werden, cp ( copy ) für kopiere, und wenn wir schon dabei sind, mv ( move ) für bewege.
Die Syntax und weitere Optionen bekommt man „natürlich“ mit
man cp
oder
man mv
Optionen wären zusätzliche Schalter wie
cp -r -ax
wobei -r bewirkt das ein gesamtes Verzeichnis mit Inhalt kopiert werden kann, ohne -r kann cp nur Dateien kopieren.
-ax bewirkt eine Kopie ohne veränderte Rechte, sehr wichtig wenn man eine ganze Ordnerstruktur kopieren möchte und es fatale Folgen haben könnte, wenn man mit einem einfachen cp alle Besitzereinstellungen überschreibt.

Zurück zur Syntax:
cp -r /Quelle /Ziel
kopiert alles inklusive Quelle nach /Ziel zu /Ziel/Quelle/Inhalt von Quelle
cp -r /Quelle/* /Ziel kopiert nur den Inhalt von Quelle nach /Ziel/Inhalt von Quelle
Nun kommen auch die Punkte in der Verzeichnisstruktur zum tragen.
Wir erinnern uns: Ein Punkt steht für das Verzeichnis in dem wir uns gerade befinden, zwei Punkte für das übergeordnete.
Beispiel:

gateway: /etc/shorewall #cp /usr/share/beispiel ./

kopiert beispiel in /usr/share nach /etc/shorewall/beispiel

gateway: /etc/shorewall #cp /usr/share/beispiel ../

kopiert beispiel in /usr/share nach /etc/beispiel

nochmal um es ganz klar zu machen:

gateway: / #cp /usr/share/beispiel ./

kopiert beispiel in /usr/share nach /beispiel

gateway: / #cp /usr/share/beispiel ../

Fehler!

Da kopieren und löschen manchmal schneller sein kann ( ist die Autocompletefunktion ( Tabulatortaste schon bei shorew drücken ) schon in Fleisch und Blut übergegangen? )
fehlt uns jetzt noch
rm ( remove ) für löschen
Auch hier die Syntax via man rm inhalieren,
rm -r /*
löscht mal eben das gesamte System, ohne weitere Warnung und zwar während es läuft!
rm Datei
löscht eine einzelne Datei
rm -r /Verzeichnis
löscht ein ganzes Verzeichnis inklusive Inhalt.
Damit machen wir uns jetzt auf den Weg

rm heisst immer auch Konzentration! Die Geschichten vom versehentlichen Löschen füllen ganze Bücher. rm ist nichts für „Schatz, ich komm ja gleich, ich muß nur noch…“
Merke! Es gibt keinen Papierkorb!
rm heisst weg!

gateway: /etc/shorewall #cp /usr/share/doc/shorewall/examples/three-interfaces/* ./
kopiert also den ganzen Inhalt nach /etc/shorewall,
gateway: /etc/shorewall #l
zeigt uns Dateien die wir brauchen, die README.txt und, farblich abgesetzt, gepackte .gz Dateien ( ich hab bis heute nicht gefunden was die da machen, aber muss gestehen, ich habe sie auch noch nie ausgepackt und reingeschaut, sicher ist, wir brauchen sie nicht )
gateway: /etc/shorewall #rm *.txt *.gz
löscht alles was wir nicht brauchen, ich versprach, geht schneller
gateway: /etc/shorewall #l
insgesamt 44
-rw-r—– 1 root root  960 Mär 24  2019 conntrack
-rw-r–r– 1 root root 1041 Okt 22 15:38 interfaces
-rw-r—– 1 root root  806 Okt 22 15:38 params
-rw-r–r– 1 root root 2293 Okt 22 15:38 params.annotated
-rw-r–r– 1 root root  813 Okt 22 15:38 policy
-rw-r–r– 1 root root 2094 Okt 22 15:38 rules
-rw-r–r– 1 root root 5306 Mär 24  2019 shorewall.conf
-rw-r–r– 1 root root 1149 Okt 22 15:38 snat
-rw-r–r– 1 root root  812 Okt 22 15:38 stoppedrules
-rw-r–r– 1 root root  751 Okt 22 15:38 zones

Uns interessieren nun 5 Dateien:
interfaces – hier werden die Schnittstellen den Zonen zugeordnet
policy – hier wird grundsätzlich festgelegt wie eine Zone reagiert
rules – hier werden alle Regeln angelegt
zones – hier werden die Zonen definiert
stoppedrules – müssen wir kurz anpassen
Nur wenn unsere primäre Netzwerkschnittstelle nicht eth0 ist, müssen wir auch snat anpassen.
Schauen wir uns das zuerst an:

gateway: /etc/shorewall #cat snat
MASQUERADE 10.0.0.0/8,\
_____________169.254.0.0/16,\
_____________172.16.0.0/12,\
_____________192.168.0.0/16 NET_IF
Diese privaten bzw. LinkLocal Netzwerke werden maskiert, d.h. ein Laptop im Subnetz erstes.netz mit der IP 10.0.0.4 wird nach aussen mit der Adresse der primären Schnittstelle 10.0.2.100 dargestellt. Ebenso alle anderen Geräte in den Subnetzen an den beiden nichtprimären Schnittstellen.
10.0.0.0/8 oder um bei unserer Darstellung der Netzwerkmaske zu bleiben; 10.0.0.0 255.0.0.0, deckt alle unsere internen Schnittstellen ab.
Mehr zum Thema Masquerade, snat HIER.
Da wir die externe Schnittstelle bereits mit ihrer MAC Adresse fest an eth0 gebunden haben, brauchen wir hier nichts zu ändern.
gateway: /etc/shorewall #nano interfaces
#ZONE   INTERFACE       OPTIONS
net     NET_IF         tcpflags,dhcp,nosmurfs,routefilter,logmartians,sourceroute=0,physical=eth0
loc     LOC_IF          tcpflags,nosmurfs,routefilter,logmartians,physical=eth1
dmz     DMZ_IF          tcpflags,nosmurfs,routefilter,logmartians,physical=eth2
Wir ändern die Zeilen wie folgt:
net     NET_IF         tcpflags,dhcp,nosmurfs,routefilter,logmartians,sourceroute=0,physical=eth0
loc     LOC_IF          tcpflags,dhcp,nosmurfs,routefilter,logmartians,physical=eth1
cid     CID_IF          tcpflags,dhcp,nosmurfs,routefilter,logmartians,physical=eth2
Warum?
siehe Auszug unten:
net ist die externe Schnittstelle mit Anschluss ans Internet, ( 3. trifft zu )
loc wird unser Heimnetz erstes.netz, wir ergänzen dhcp, ( 2. trifft zu )
dmz ist für uns nicht zutreffend, da wir hinter einem Plasterouter hängen bekommen wir die dmz dort quasi inklusive. Wir ändern den Eintrag auf cam wenn wir dort ein Kameraüberwachungsnetz aufbauen möchten, oder auf kid, wenn wir das Subnetz für unsere Kinder aufsetzen wollen, oder was auch immer Dein Plan jetzt ist.
Ich werde diese Zone jetzt cid nennen und auf beide Möglichkeiten eingehen.
Mit einer 4. Netzwerkkarte wäre jetzt beides möglich.
Auch hier ergänzen wir um den Eintrag dhcp ( 2. trifft zu )
!! die Kommas nicht vergessen !!

Auszug aus der man shorewall-interfaces
           dhcp
        Specify this option when any of the following are true:
        1. the interface gets its IP address via DHCP Nein
                2. the interface is used by a DHCP server running on the firewall Ja
                3. the interface has a static IP but is on a LAN segment with lots of DHCP clients. Ja
                4. the interface is a simple bridge[9] with a DHCP server on one port and DHCP clients on another port. Nein

speichern und schliessen
gateway: /etc/shorewall #nano policy
#SOURCE DEST            POLICY          LOGLEVEL        RATE    CONNLIMIT
loc     net             ACCEPT
net     all             DROP            $LOG_LEVEL
# THE FOLLOWING POLICY MUST BE LAST
all     all             REJECT          $LOG_LEVEL

ändern wir zu:

#SOURCE DEST            POLICY          LOGLEVEL        RATE    CONNLIMIT
loc     net             DROP  
cid     net             DROP
loc     cid             ACCEPT
cid     loc             DROP
net     all             DROP            $LOG_LEVEL
# THE FOLLOWING POLICY MUST BE LAST
all     all             REJECT          $LOG_LEVEL

und bestimmen damit folgende Grundregeln:
Alle Verbindungen loc zu net werden verworfen
Alle Verbindungen cid zu net werden verworfen
Alle Verbindungen loc zu cid werden erlaubt
Alle Verbindungen cid zu loc werden verworfen
Alle Verbindungen net zu all werden verworfen

Die Möglichkeiten sind:
DROP – alle Pakete werden verworfen, der Sender bekommt keine Antwort
REJECT – alle Pakete werden mit dem Vermerk REJECT an den Sender zurückgegeben
ACCEPT – alle Pakete dürfen passieren

Somit haben wir grundsätzlich alle Verbindungen verboten, nur Geräte im Subnetz loc (erstes.netz) dürfen auf alle Geräte im Subnetz cid (zweites.netz) uneingeschränkt zugreifen.

Auf die Loglevel kommen wir später nochmal, das macht eventuell sehr viele und lange Logfiles, hilft aber natürlich wunderbar bei der Fehlersuche.
speichern und schliessen

gateway: /etc/shorewall #nano zones
#ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS

fw      firewall
net     ipv4
loc     ipv4
dmz     ipv4
dmz ändern wir auf
cid     ipv4
speichern und schliessen
gateway: /etc/shorewall #nano stoppedrules nur weil ich pingel DMZ_IF zu CID_IF in interfaces geändert habe
#ACTION         SOURCE          DEST            PROTO   DEST            SOURCE
#                                                       PORT(S)         PORT(S)
ACCEPT          LOC_IF          –
ACCEPT          –               LOC_IF
ACCEPT          DMZ_IF          – auch in CID_IF ändern
ACCEPT          –               CID_IF dito
speichern und schliessen
gateway: /etc/shorewall #cat rules
zeigt uns jetzt die „spezielle“ Regeln-datei. Die kann die vorhin geschriebe policy ganz gezielt überschreiben, und das für jeden einzelnen Port und Client wenn es sein soll. Diese Datei ist erstens groß, und kann zweitens schnell unübersichtlich werden, wenn man sich nicht direkt angewöhnt, vor jede neue Regel einen Kommentar zu setzen.

#ACTION        SOURCE      DEST        PROTO   DEST    SOURCE      ORIGINAL    RATE        USER/   MARK    CONNLIMIT
# PORT    PORT(S)     DEST        LIMIT       GROUP
 ?SECTION ALL
 ?SECTION ESTABLISHED
 ?SECTION RELATED
 ?SECTION INVALID
 ?SECTION UNTRACKED
 ?SECTION NEW
 #Don't allow connection pickup from the net
 #
 Invalid(DROP)    net     all     tcp
 #
 #Accept DNS connections from the firewall to the Internet
 #
 DNS(ACCEPT)    $FW        net Das erlaubt unserem Server ($FW) Nameserver im Internet anzusprechen, erforderlich
 #
 #
 #Accept SSH connections from the local network to the firewall and DMZ
 #
 SSH(ACCEPT)     loc             $FW wollen wir
 SSH(ACCEPT)     loc             dmz muss cid heissen
 #
 #DMZ DNS access to the Internet
 #
 DNS(ACCEPT)    dmz     net muss cid heissen,wollen wir nicht
 #Drop Ping from the "bad" net zone.
 Ping(DROP)       net             $FW sehr gut
 #
 #Make ping work bi-directionally between the dmz, net, Firewall and local zone
 #(assumes that the loc-> net policy is ACCEPT). ist sie nicht
 #
 Ping(ACCEPT)    loc             $FW wollen wir alles nur um das Netz zu testen, wird kommentiert
 Ping(ACCEPT)    dmz             $FW muss cid heissen
 Ping(ACCEPT)    loc             dmz
 Ping(ACCEPT)    dmz             loc
 Ping(ACCEPT)    dmz             net
 ACCEPT        $FW        net     icmp das ist ok
 ACCEPT        $FW        loc     icmp
 ACCEPT        $FW        dmz     icmp muss cid heissen
 #Uncomment this if using Proxy ARP and static NAT and you want to allow ping from
 #the net zone to the dmz and loc
 #Ping(ACCEPT)    net             dmz
 #Ping(ACCEPT)    net             loc

Ein neues Program zwischendurch? sed ist ein kleines hilfreiches Ding, welches Text in einer Datei ersetzt.
Syntax finden wir wieder in man sed,
hier
sed -i ’s/wird-ersetzt/durch/g‘

gateway: /etc/shorewall #sed -i ’s/dmz/cid/g‘ rules und alles dmz ist durch cid ersetzt
gateway: /etc/shorewall #nano rules jetzt unsere Regeln

#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT
 # PORT PORT(S) DEST LIMIT GROUP
 ?SECTION ALL
 ?SECTION ESTABLISHED
 ?SECTION RELATED
 ?SECTION INVALID
 ?SECTION UNTRACKED
 ?SECTION NEW
 

 #       Don't allow connection pickup from the net
 #
 Invalid(DROP)   net            all     tcp
 #
 # Accept DNS connections from the firewall to the Internet
 #
 DNS(ACCEPT)     $FW             net
 #
 #
 # Accept SSH connections from the local network to the firewall and DMZ
 #
 SSH(ACCEPT)     loc             $FW
 SSH(ACCEPT)     loc             cid
 SSH(ACCEPT)     net             $FW nur damit shorewall uns beim start gleich nicht rausschmeisst, DAS MUSS WIEDER RAUS!
 #
 # DNS access zu unserem lokalen Nameserver
 #
 DNS(ACCEPT)     loc             $FW
 DNS(ACCEPT)     cid             $FW
 

 

 # Drop Ping from the "bad" net zone.
 

 Ping(DROP)       net             $FW
 

 #
 #       Make ping work bi-directionally between the cid, net, Firewall and local zone
 #       (assumes that the loc-> net policy is ACCEPT).
 #
 Ich aktiviere das nur gezielt zum testen

 #Ping(ACCEPT)    loc             $FW
 #Ping(ACCEPT)    cid             $FW
 #Ping(ACCEPT)    loc             cid
 #Ping(ACCEPT)    cid             loc
 #Ping(ACCEPT)    cid             net
 

 ACCEPT           $FW             net      icmp
 ACCEPT           $FW             loc      icmp
 ACCEPT           $FW             cid      icmp
 

 # Uncomment this if using Proxy ARP and static NAT and you want to allow ping from
 # the net zone to the cid and loc
 # das lassen wir mal schön bleiben
 

 #Ping(ACCEPT)    net             cid
 #Ping(ACCEPT)    net             loc
 

 #
 # E-Mailversand für loc, cid und $FW (logwatch & co) ausschliesslich verschlüsselt
 #
 ACCEPT          $FW             net             tcp     587 unser gateway empfängt nichts, sendet nur, vielleicht aber bei Dir auf 465?
 ACCEPT          loc             net             tcp     143,465,587,993
 ACCEPT          cid             net             tcp     143,465,587,993
 # 143 und 993 sind die Ports für den IMAP Empfang TLS/SSL, 465 und 587 der SMTP Versand
 # Zeitsynchronisation für unsere lokalen Netze
 #
 ACCEPT          $FW             net             udp     123
 ACCEPT          loc             $FW             udp     123
 ACCEPT          cid             $FW             udp     123
 #
 # nicht alle können oder wollen das, deshalb sei es gestattet
 #
 ACCEPT          loc             net             udp     123
 ACCEPT          cid             net             udp     123 
#
 # neu, ein Protokoll namens QUIC
 #
 ACCEPT          loc             net             udp     443
 #
 # und zuguterletzt immer unser INTERNET
 # $FW braucht das nur für die Updates
 #
 HTTPS(ACCEPT)   loc             net
 HTTP(ACCEPT)    loc             net
 HTTPS(ACCEPT)   $FW             net
 HTTP(ACCEPT)    $FW             net
 HTTPS(ACCEPT)   cid             net
 HTTP(ACCEPT)    cid             net

Damit ist unsere Grundkonfiguration der Firewall abgeschlossen und wir können einen ersten Start wagen:

gateway: /etc/shorewall #shorewall start
Compiling using Shorewall 5.2.3.2…
Processing /etc/shorewall/params …
Processing /etc/shorewall/shorewall.conf…
Loading Modules…
Compiling /etc/shorewall/zones…
Compiling /etc/shorewall/interfaces…
Determining Hosts in Zones…
Locating Action Files…
Compiling /etc/shorewall/policy…
Adding Anti-smurf Rules
Adding rules for DHCP
Compiling TCP Flags filtering…
Compiling Kernel Route Filtering…
Compiling Martian Logging…
Compiling Accept Source Routing…
Compiling /etc/shorewall/snat…
Compiling MAC Filtration — Phase 1…
Compiling /etc/shorewall/rules…
Compiling /etc/shorewall/conntrack…
Compiling MAC Filtration — Phase 2…
Applying Policies…
Generating Rule Matrix…
Optimizing Ruleset…
Creating iptables-restore input…
Compiling /etc/shorewall/stoppedrules…
Shorewall configuration compiled to /var/lib/shorewall/.start
Starting Shorewall….
Initializing…
Setting up Route Filtering…
Setting up Martian Logging…
Setting up Accept Source Routing…
Preparing iptables-restore input…
Running /sbin/iptables-restore –wait 60…
done.
gateway: /etc/shorewall #

Damit ist unsere Firewall aktiv, es fehlt nur noch ein DHCP-Server und wir könnten schonmal mit unserem Verwaltungsrechner ins neue Netz umziehen.
Vorher machen wir uns aber schonmal ein paar neue „alias“, denn zwei Dinger werden wir jetzt öfter nutzen. Die rules Datei, weil ein neuer Dienst im Netz nach Anpassung schreit ( VPN will erreichbar werden oder Fortnite geht nicht ) und den daraus resultierenden Neustart von shorewall.

Ausserdem startet unsere Shorewall noch nicht nach einem Neustart des Systems automatisch. Fangen wir damit an:

gateway: /etc/shorewall #nano /etc/default/shorewall
und wir ändern
startup=0
in
startup=1
speichern und schliessen und testen
gateway: /etc/shorewall #systemctl enable shorewall.service
gateway: /etc/shorewall #reboot

wieder einloggen

gateway: ~ #systemctl status shorewall.service
shorewall.service – Shorewall IPv4 firewall
   Loaded: loaded (/lib/systemd/system/shorewall.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2019-10-22 20:30:43 CEST; 1min 5s ago
  Process: 544 ExecStart=/sbin/shorewall $OPTIONS start $STARTOPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 544 (code=exited, status=0/SUCCESS)
Okt 22 20:30:42 gateway systemd[1]: Starting Shorewall IPv4 firewall…
Okt 22 20:30:43 gateway shorewall[544]: Starting Shorewall….
Okt 22 20:30:43 gateway shorewall[544]: Initializing…
Okt 22 20:30:43 gateway shorewall[544]: Setting up Route Filtering…
Okt 22 20:30:43 gateway shorewall[544]: Setting up Martian Logging…
Okt 22 20:30:43 gateway shorewall[544]: Setting up Accept Source Routing…
Okt 22 20:30:43 gateway shorewall[544]: Preparing iptables-restore input…
Okt 22 20:30:43 gateway shorewall[544]: Running /sbin/iptables-restore –wait 60…
Okt 22 20:30:43 gateway shorewall[544]: done.
Okt 22 20:30:43 gateway systemd[1]: Started Shorewall IPv4 firewall.
gateway: ~ #So sieht das gut aus! Nun noch mal zur bash
gateway: ~ #nano .bashrc
und diese beiden Zeilen am Ende einfügen:
alias rules=’nano /etc/shorewall/rules‘
alias shrs=’systemctl restart shorewall.service‘
speichern und schliessen
gateway: ~ #

Jetzt einmal ausloggen ( control+d ) und wieder einloggen, und die neuen „aliase“ sind aktiv. Fortan reicht ein „rules“, um die Regeln zu bearbeiten, und ein „shrs“, um die Firewall neu zu starten.

next> backup