| FOTO | AUTO | EDV | AUDIO |

Firewall und SELinux

iptables ist ein Userspace-Programm zur Konfiguration der Tabellen (tables), die durch die Firewall im Linux-Kernel (bestehend aus einer Reihe von Netfilter-Modulen) bereitgestellt werden. Diese Tabellen enthalten Ketten (chains) und Regeln (rules). Verschiedene Programme werden gegenwärtig für unterschiedliche Protokolle verwendet.

SELinux ist eine Erweiterung des Linux-Kernels, die den ersten Versuch darstellt, das FLASK-Konzept der NSA umzusetzen. Es implementiert die Zugriffskontrollen auf Ressourcen im Sinne von Mandatory Access Control. SELinux wird maßgeblich von der NSA und von dem Linux-Distributor Red Hat entwickelt.

SELinux

Installation

yum install setools setools-gui

Befehle und Tools
Folgende Programme sind in den Paketen setools bzw. setools-gui enthalten und stellen grundlegende Werkzeuge für die Arbeit mit SELinux zur Verfügung.

seinfozeigt eine Statistik der SELinux-Policy an
sestatuszeigt allgemeine Statusinformationen von SELinux an
sediffeine spezielle Variante des Programms diff für die SELinux-Policy, vergleicht zwei Policies auf sematische Unterschiede
sediffxdie grafische Oberfläche zu sediff
semoduleein Programm zur Verwaltung von SELinux-Modulen
getenforcezeigt an, ob SELinux im Enforcing-Modus arbeitet oder nicht
setenforceändert temporär den SELinux-Modus (0=Permissive Mode, 1=Enforcing Mode)

Ein grafisches Konfigurationstool wird nachinstalliert mit

yum install policycoreutils-gui
Weitere Informationen

IPtables

Die Paketprüfung und die mit iptables zu erstellenden Filterregeln sind dreistufig aufgebaut. Es gibt (hierarchisch von oben nach unten):

  • Tabellen
  • Chains
  • die eigentliche Filterregeln

Trifft eine in einer Tabelle und Chain definierte Regel zu, so wird die in der Regel hinterlegte Aktion ausgeführt. Sollte keine Regel zutreffen so wird die in der Tabelle hinterlegte Default-Policy angewendet

Beispiel Portweiterleitung

Diese Regel leitet den Ausgangsport 21 zum Zielport 1121 um

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j REDIRECT --to-port 1121
Diese Regel leitet den gesamten Traffic von Port 80 auf Port 81 um
iptables -t nat -I PREROUTING --src 0/0 --dst 192.168.1.5 -p tcp --dport 80 -j REDIRECT --to-ports 8123

iptables Grundkonfiguration mit der GUI

System → Administration → Firewall mit der GUI ist es möglich

  • Benötigte Ports freizugeben und wieder zu schließen
  • Schnittstellen zu vertrauen
  • Masquerading einzurichten
  • Portweiterleitungen und NAT einzurichten
  • ICMP Filter zu aktivieren / deaktivieren
  • Firewall aktivieren / deaktivieren

Weitere Informationen:

Webmin

Da Webmin schon installiert ist, kann die Firewall auch hier konfiguriert werden.

Shorewall

Shorewall (Kurzform für Shoreline Firewall; benannt nach dem Wohnort seines Autors Thomas M. Eastep, Shoreline, Washington, Vereinigte Staaten) ist ein freier Firewall-Konfigurator, der auf den im Linux-Kernel eingebauten netfilter aufsetzt (http://www.shorewall.net/).
Sie kann über die Konfigurationsdateien konfiguriert werden .Zusätzlich gibt es eine mächtige Erweiterung für webmin.

Installation

yum install shorewall
Oder wenn dies nicht funktioniert, gibt es unter www.shorewall.net für CentOS vorbereitete Installationspakete.
Die Default-Config muss erst in das richtige Verzeichnis (/etc/shorewall) kopiert werden. Die Sample Dateien liegen unter /usr/share/doc/shorewall-4.5.0.3/Samples/, wobei der Pfad auf die Versionen angepasst werden muss.

cd /usr/share/doc/shorewall-4.5.0.3/Samples/two-interfaces  # Sample Dateien für eine FW mit 2 NIC
cp interfaces rules zones policy /etc/shorewall

Konfiguration

Anschließend müssen noch die folgenden Config-Files editiert werden:

In der Datei /etc/shorewall/interfaces wird die Netzwerkkarte und die Broadcast Adresse eingestellt.

#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth0            detect          dhcp,tcpflags,nosmurfs,routefilter,logmartians
loc     eth1            detect          tcpflags,nosmurfs,routefilter,logmartians

In der Datei /etc/shorewall/policy wird die grundlegende Konfiguration der einzelnen Verbindungen festgelegt. $FW bezeichnet den verwendeten PC selbst und net ist unsere Netzwerkkarte wie in /etc/shorewall/interfaces angegeben. Die folgende Konfiguration erlaubt den PC auf allen Ports nach aussen zu senden, aber alle eingehenden Anfragen zu verwerfen.

#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST
 
loc             net             ACCEPT
net             all             DROP            info
# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

In der Datei /etc/shorewall/zones muss folgendes eingestellt werden.

#ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4

In der Datei /etc/shorewall/rules können dann einzelne Ports behandelt werden. Das folgende Beispiel zeigt auf 2 verschiedene Varianten wie der SSH-Port (Port 22) zugelassen werden kann.

 
#Variante 1 mit Macros
SSH/ACCEPT  net     $FW
 
#Variante 2 mit der Portnummer
ACCEPT  net     $FW     tcp    22

Welche Macros zur Verfügung stehen kann man leicht mit folgendem Befehl herausfinden:

shorewall show macros

Danach muss noch die Firewall gestartet werden.

shorewall safe-start

Sollte sie bereits laufen, hilft der folgende Befehl.

shorewall safe-restart

Sobald die Firewall abschließend getestet ist, muss sie nur mehr beim Starten des PCs mitgestartet werden.

chkconfig shorewall on

Das wars, damit sollten Sie sicherer sein, als zuvor. Weitere Informationen und ein gutes Tutorial: http://www.linuxarticles.org/2011/05/firewall-shorewall-configuration-on-linux/
http://www.cyberciti.biz/faq/centos-rhel-shorewall-firewall-configuration-setup-howto-tutorial/

Smoothwall

Smoothwall ist eine weitere Open Source Firewall für Linux http://www.smoothwall.org/get/

FWBuilder

Dies ist ein Tool um in einem Netzwerksegment mehrere Client Firewallsettings synchron zu halten und um neue Regeln generieren zu können

Installation

vim /etc/yum.repos.d/fwbuilder.repo

[fwbuilder]
name=Firewall Builder
failovermethod=priority
baseurl=http://packages.fwbuilder.org/rpm/stable/rhel-$releasever-$basearch
enabled=1
 
[fwbuilder-testing]
name=Firewall Builder Test Builds
failovermethod=priority
baseurl=http://packages.fwbuilder.org/rpm/testing/rhel-$releasever-$basearch
enabled=0
Der Sicherheitsschlüssel muss importiert werden

rpm --import http://www.fwbuilder.org/PACKAGE-GPG-KEY-fwbuilder.asc

Jetzt kann mit yum installiert werden

yum install fwbuilder

Der fwbilder ist bestens geeignet eine sehr komplexe Firewall zu erstellen. Daher ist der Funktionsumfang sehr hoch. Im Internet gibt es einige Anleitungen wie fwbuilder verwendet werden kann.

Weitere Informationen

Weitere Informationen:

Grundlegende Firewall (nicht ganz ernst)

Grundlegende Firewall (nicht ganz ernst)