Howto install APF (Advanced Policy Firewall)
von griesgram am Mai.06, 2009, unter Hacking, Howto, Linux, Scripting, Security, Websecurity
Advanced Policy Firewall (APF) ist ein iptables(netfilter) basiertes Firewall System für Linux Server. Die Installation sowie Konfiguration ist einfach, schnell und gut verständlich.
Die APF besitzt ein 3-faches Filter System:- Statische Firewall Regeln (nicht zu verwechseln mit “static firewall”)
- Connection basierende Stateful Regeln (In und Out)
- Sanity basierende Regeln (Verdächtigen Verkehr erkennen und blocken)
Der erste Filter ist die normale Arbeitsweise einer Firewall. In der Regeln sind dies die Normalen Ports und Weiterleitungen die für alle Offen/Geschlossen sind. Die zweite Methode ist Verbindungsabhängig und kann auch für jede Verbindung einzeln eingestellt werden. Die letzte Methode tritt in Kraft, wen die Firewall Angriffe entdeckt, um entsprechend darauf zu reagieren und die IP in gewissen fällen für eine Zeit zu blocken. Das Verhalten ist vollständig Konfigurierbar. Es ist sogar möglich Ports auf UserID's zu beschränken.
Die vielen Features der APF ermöglichen eine sehr einfache und detailierte Konfiguration.
Features:
anzeigenCurrent Release:
- http://www.rfxn.com/downloads/apf-current.tar.gz (Aktuelle Version ist 9.7-1)
- http://www.rfxn.com/appdocs/README.apf
- http://www.rfxn.com/appdocs/CHANGELOG.apf
Wer gerne eine detailierte Anleitung zur Installation der APF Firewall haben möchte, liest am besten weiter.
APF herunterladen und entpacken
cd /usr/local/src
wget http://www.rfxn.com/downloads/apf-current.tar.gz
tar xvzf apf-current.tar.gz APF installieren/updaten
cd apf-9.7-1
./install.sh Output:Installing APF 9.7-1: Completed.
Installation Details:
Install path: /etc/apf/
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf
Other Details:
Imported options from 9.6-5 to 9.7-1.
Note: Please review /etc/apf/conf.apf for consistency, install default backed up to /etc/apf/conf.apf.origAbhängigkeiten
Damit die APF richtig funktioniert, benötigen wir zusätzlich noch ein paar IPTable Packete (conntrack/libnetfilter-conntrack1)
aptitude install libnetfilter-conntrack1 conntrackAPF konfigurieren
Damit die APF auch richtig funktioniert müssen wir sie zuerst konfigurieren.
Globale Einstellungen:
- conf.apf
IP/Host spezifische Allow/Deny Einstellungen
- allow_hosts.rules
- deny_hosts.rules
Stellen wir zuest die Globalen Einstellungen ein.
vim /etc/apf/conf.apfÄnderungen:
Ich liste hier nur die wichtigen Änderungen auf, jeder muss für sich selber entscheiden was er alles konfigurieren möchte und was nicht. Zudem ist jede Konfigurationseinstellung gut Dokumentiert.
Globale EinstellungenAchtung: Stellt die Option DEVEL_MODE erst auf "0", wenn ihr wirklich sicher seit das alles funktioniert! Solange die Option auf "1" ist, werden die Firewallregeln alle 5min gelöscht. Läuft alles wie gewünscht, stellt zwingend diese Option auf "0". Ansonsten läuft eure Firewall nicht richtig!
DEVEL_MODE="0"
IFACE_IN="eth0"
IFACE_OUT="eth0"
SET_VERBOSE="1"
SET_FASTLOAD="1"Eingehende Ports definieren (Global) # Common inbound (ingress) TCP ports
IG_TCP_CPORTS="20,21,22,80,443"
# Common inbound (ingress) UDP ports
IG_UDP_CPORTS="53"
# Common ICMP inbound (ingress) types
# 'internals/icmp.types' for type definition; 'all' is wildcard for any
IG_ICMP_TYPES="3,5,11,0,30,8" Ausgehende Ports definieren (Global) - OptionalMit der Variable EGF, kann man das Feature an- oder ausschalten.
# Outbound (egress) filtering
EGF="0"
# Common outbound (egress) TCP ports
EG_TCP_CPORTS="21,25,53,80,443,43"
# Common outbound (egress) UDP ports
EG_UDP_CPORTS="20,21,53"
# Common ICMP outbound (egress) types
# 'internals/icmp.types' for type definition; 'all' is wildcard for any
EG_ICMP_TYPES="all"Die anderen Konfigurationoptionen würde ich zuerst gut durchlesen und nur aktivieren wen man auch wirklich versteht was man macht! Ansonsten blockt ihr euch gleich selbst raus! Was natürlich sehr schlecht wäre.
APF neustarten
Jetzt müssen wir noch die Firewall neustarten, damit die Änderungen übernommen werden. Dies muss man immer machen, sobald man was in den Konfigdateien ändert.
apf -rErweiterte Konfiguration
Host erlauben
Um einen Host zu erlauben ohne die Firewall neuzustarten, kann man dies mit dem einfachen Befehl realisieren:
apf -a IP/FQDN KommentarAls Beispiel:apf -a 192.168.100.200 TestServerHost sperren
Um einen Host der sie z.B Angreift zu sperren, können sie den Host direkt in die laufende Firewall einspeisen ohne die Firewall neuzustarten. Dies geschieht mit diesem eifachen Befehl:
apf -d IP/FQDN KommentarAls Beispiel:apf -d www.böserHost.com AngreiferHost entsperren
Um einen Host zu entsperren, sollte er mal fälschlicherweise geblockt werden, kann man den Host mit diesem Befehl wieder entsperren:
apf -u IP/FQDNAls Beispiel:apf -u 192.168.100.200Netzwerke automatisch blocken - Remote Rule Imports
Um Netzwerke mit komischen Aktivitäten automatisch zu blocken, kann man in der "conf.apf" folgende Änderungen durchführen.
vim /etc/apf/conf.apfProject Honey Pot
Blockt Spammers und SMTP Dictionary attacks.
DLIST_PHP="1"Spamhaus - Don't Route or Peer List
Spamhaus's Don't Route or Peer List (DroP), beinhaltet eine Liste von gestollenen "Zombie" Netzen und Professional Spam Netzen.
DLIST_SPAMHAUS="1"DShield - Netze mit gefährlichen Aktivitäten
DShield Liste beinhaltet Hosts/Netze mit gefährlichen und illegalen Aktivitäten.
DLIST_DSHIELD="1"Reaktives Adressblocking - RAB
Ein weiteres nettes Feature der APF ist das reaktive Adressblocken. Was bedeutet, dass sich die Firewall einen Host merkt und bei mehrmaligem Verstoss gegen die Regeln, die IP/Host für eine gewisse Zeit lang sperrt. Sollte ein Host zum Beispiel versuchen eine IP zu Spoofen, wird dies erkannt und der Host wird kurzzeitig gesperrt. Es kann eingestellt werden, bei welchen Firewallverletzungen ein Host geblockt wird, nach wie vielen Firewallverletzungen ein Host gesperrt wird und ob alles gelogt werden soll.
RAB ein/ausschalten
RAB="1"Sanity - Packet Verletzungen
RAB_SANITY="1"Portscan Verletzungen
RAB_PSCAN_LEVEL="2"Hit Count
Wie viele Verletzungen stattfinden müssen, bis der Host geblockt wird. Standard ist "1".
RAB_HITCOUNT="1"Das wars, jetzt nochmal die Firewall neustarten.
apf -rHoffe dies hilft einem sein Linux System mit einer guten Firewall abzusichern.

