# smtp: internal network host on interface eth0 with mail on eth1
ipchains -A input -j ACCEPT -p tcp -i eth0 -s $internal 1024:65535 -d mail smtp
ipchains -A output -j ACCEPT -p tcp -i eth1 -s $internal 1024:65535 -d mail smtp
ipchains -A forward -j ACCEPT -p tcp -b -s $internal -d mail
ipchains -A input -j ACCEPT ! -y -p tcp -i eth1 -s mail smtp -d $internal 1024:65535
ipchains -A output -j ACCEPT ! -y -p tcp -i eth0 -s mail smtp -d $internal 1024:65535
ipchains -A forward -j ACCEPT ! -y -p tcp -b -s mail -d $internal
# smtp: mail host on interface eth1 with internet on interface ippp0
ipchains -A input -j ACCEPT -p tcp -i eth1 -s mail 1024:65535 -d $any smtp
ipchains -A output -j ACCEPT -p tcp -i ippp0 -s mail 1024:65535 -d $any smtp
ipchains -A forward -j ACCEPT -p tcp -b -s mail -d $any
ipchains -A input -j ACCEPT ! -y -p tcp -i ippp0 -s $any smtp -d mail 1024:65535
ipchains -A output -j ACCEPT ! -y -p tcp -i eth1 -s $any smtp -d mail 1024:65535
ipchains -A forward -j ACCEPT ! -Y -p tcp -b -s $any -d mail  

Listing 2: Regelsatz für ausgehende E-Mail über Rechner mail im »Perimeter Network«

 
# logging von smtp-Verbindungen (müssen vor den anderen Einträgen aufgerufen werden)
ipchains -A input -j ACCEPT -l -y -p tcp -i eth0 -s $internal 1024:65535 -d mail smtp
ipchains -A input -j ACCEPT -l -y -p tcp -i eth1 -s mail 1024:65535 -d $any smtp  

Listing 3: Protokollieren der E-Mail Verbindungen durch den Kernel

 
müssen. Um z.B. den E-Mail-Dienst für eine bestimmte Zeit zu deaktivieren, kann dieser Dienst unter »Configuration« auf »Blocked« gesetzt werden. Analog bedeutet »Outgoing«, das der Dienst nur in dieser Richtung nutzbar ist, auch wenn unter »Screening« »All Directions« für den E-Mail-Dienst definiert wurde.
    Um dem Administrator das Leben etwas zu erleichtern, können beliebige Variablen als »Aliases« definiert und in den Eingabemasken verwendet werden. Beispielsweise findet man hier die Definitionen von $internal und $any wieder.
     Schließlich gibt es noch die Möglichkeit, externe Rechner über die Firewall mit dem internen Netzwerk zu verbinden. Werden diese in FCT als »Trusted« eingetragen, dürfen sie so ziemlich alle Dienste im internen Netzwerk verwenden. Genauer formuliert: Alle Pakete werden vom und zum internen Netzwerk weitergeleitet.


Wird die Option »Firewall Allowed« angegeben, kann zusätzlich die Firewall selbst von diesen Rechnern erreicht werden - ob man so etwas will, sei dahingestellt. Ein Beispiel aus rules/Trusted.rules:
for host in hobbes; do
    tipgw $mod $host isdn0 log
done  

Eine gesetzte Firewall-Allowed Option (vgl. Bild 5) bewirkt, daß das Kommando ipchains mit insert (-I) anstelle von add (-A) generiert wird. Dadurch werden die Filterregeln vor den Regeln eingefügt, welche jegliche nicht definierten

 
Mit der Definition der Dienste unter »Definition« kann für jedes der Protokolle TCP, UDP und ICMP eine Option »Log« aktiviert werden. Jede Verbindung wird dann vom Kernel mitprotokolliert und kann dann z.B. von einem einfachen Perlskript in zwei Logfiles mitgeschrieben und ausgewertet werden.
    Im Download-Verzeichnis von FCT  http://friedrich-net.de/ftp liegen zwei kleine Perl-Scripts bereit, mit denen bei bestimmten Ereignissen Kommandos automatisch ausgeführt werden können - z.B. kann eine E-Mail an Root gesendet werden, wenn jemand versucht in das interne Netzwerk einzudringen.
for dest in mail; do
    for source in $internal; do
        # Outgoing
        if [ »$smtp« = FILTERED -o »$smtp« = OUT ]; then
            ipgw $mod accept -O $source $dest 1024:65535 smtp log
            ipgw $mod accept -O $source $dest 1024:65535 smtp
            ipgw $mod accept -I $dest $source smtp 1024:65535 ack
        fi
    done
done  

Listing 4: »Rules-File« für den Dienst E-Mail

 
Trusted Hosts

Bild 5: Die eigenen Rechner sind »Trusted«

 
Verbindungen zur Firewall unterbinden, wodurch die Firewall erreichbar wird. FCT unterstützt das Protokollieren der Verbindungen, soweit es das verwendete Kommando zuläßt. Aktuell unterstützen alle Kommandos dieses Feature.

Die Scripts zeigen allerdings nur die mögliche Realisierungswege auf und eignen sich im aktuellen Stadium noch nicht für eine Verteilung im Hauptpaket von FCT selbst. Die automatische Alarmierung wird erreicht, indem alle "geloggten" Verbindungen durch eine Pipe in das Perl-Script deny_cmds weitergeleitet werden. Das Script syslog.filter protokolliert zu diesem Zweck alle IP-Verbindungen in die Logfiles /var/log/ip-in und /var/log/ip-out.


FCT - Firewall Configuration Tool  


- 5 -

Homepage

1   2   3   4   5   6

Impressum