===== Firewall-Appliance im Selbstbau ===== Zum __realen__ Preis eines RasPi kann mit der unten aufgeführten Zutaten und [[http://www.ipfire.org/|IPFire]] oder [[https://opnsense.org/|OPNsense]] eine Firewall-Appliance realisiert werden. Der Stromverbrauch liegt dann bei etwa 20Watt, dafür erhält man je nach bedarf eine angepasste,flexible und leistungsfähige Firewall-Appliance.\\ {{ :firewall.pdf |Vortragsfolien}} ==== Vergleich zu RasPi ==== === Stromverbrauch === Die Futro benötigt im Betrieb ca. 20 Watt, welches im vergleich zu einem RasPi (2,5 Watt) auf den ersten Blick sehr viel erscheint. Jedoch ist in dem Verbrauch der Futro bereits die USB-Festplatte, weitere Netzwerkschnittstellen und das Netzteil bereits enthalten. Also kämen bei einem realistischen Vergleich zu den 2,5 Watt des RasPis noch die USB-Festplatte, USB-Netzwerkkarte(n) und die Verlustleistung des 5V-USB-Netzteiles. Wenn man jetzt vergleicht ist man von den 20 Watt der Futro nur noch knapp 5 Watt entfernt. Ein aktueller RasPi 3 gibt sich derweil auch nicht mehr mit den 2,5 Watt zufrieden. === HW-Ausstattung === Der RasPi2/3 ist mit einem Quadcore und 1GB Ram ausgestattet. Der Flaschenhals ist hier der integrierte USB2-Controller, welcher parallel für die Speicherkarte, das integrierte Netzwerk (100MBit) und sämtliche angeschlossenen USB-Geräte zuständig ist. Eine weitere Limitierung ist die Erweiterbarkeit. Auf- und nachrüsten geht nur via GPIO oder USB. Während GPIO ist meist zu langsam und USB wie bereits ausgelastet ist, kann man z.B. den Arbeitsspeicher nicht erweitern. Die Futro wurde mit einen AMD-Sempron (x86-Singlecore-CPU) und DDR2-Ram (SO-Dimm) ausgestattet. Eine integrierte Gigabit-Schnittstelle (RealTek RTL8169) und neben einen CF-Kartensteckplatz auch einen PCI-Steckplatz. Der PCI-Bus ist jedoch auf etwas mehr als ein 1GBit/s begrenzt. Sowohl der Arbeitsspeicher (DDR2, SO-Dimm) als auch der Prozessor können aufgerüstet werden. Die Futro ist passiv gekühlt. Leider fehlt ein SATA oder IDE-Anschluss und bei dauerhaften Schreibzugriff hält eine CF-Karte nicht lange durch. Die weiteren Komponenten wie integrierte Grafikkarte (DVI), Soundkarte oder serielle Schnittstellen werden für die Firewall nicht benötigt und sollten im BIOS deaktiviert werden. Eventuell muss das BIOS-Update durchgeführt werden, damit die Futro auch von einem USB-Medium bootet. Den häufig verbauten Smartcardreader (intern USB) kann ausgebaut werden, so ist genug Raum im Gehäuse für eine USB-Festplatte geschaffen. === Fazit === Da sich der Kaufpreis von ca. 50-70€ im Bereich eines RasPi (mit notwendigen Zubehör) bewegt, bleibt dieser Punkt außen vor. Auch der geringe Stromverbrauch des RasPi's relativiert sich sobald man zusätzlichen Komponenten mit einbezieht. Zwar ist der verbraute AMD-Sempron-Prozessor der Futro kein Überflieger, aber für die zugedachten Aufgaben ausreichend. Besonders jedoch die Gigabit-Fähigkeit (integriert, als auch via PCI erweiterbar) ist für eine Firewall das wichtigere Argument. Alternativen - wie das [[https://pcengines.ch/apu.htm|APU-Board]] - spielen in einer anderen Preisliga. Andere Einplatinencomputer wie BananaPI, Odroid oder BeagleBoard haben teilweise bessere Leistungsdaten als ein Raspberry Pi, dennoch bleibt sich das Fazit auch hier bestehen. Zum Schluss muss auch darauf hingewiesen werden, dass viele Distributionen ihren Schwerpunkt auf die x86-Architektur (32- und 64-bit) gelegt haben und auch dies die Wahlfreiheit einschränkt. Besonders bei Allwinner-SoCs-Systemen schlägt dann noch der nicht vorhandene Herstellersupport für die eigene Hardware zubuche. ===== Vorbereitung ===== === Einkaufsliste === ^Zutat^Preis| |Futro S500 (S450 oder S550) | [[http://www.quantelectronic.de/Computer/ThinClient/Fujitsu-Futro-S550-Thin-Client-Sempron-2100--1GHz-1GB-1-GB-CF-Radeon-X1250-TCS-D2703-i186_34293.htm|17,00€]]| |HP NC7170 DUAL-NIC PCI-X| [[http://www.ebay.de/sch/i.html?_from=R40&_sacat=0&LH_BIN=1&_nkw=HP+NC7170&_sop=15|10,00€]]| |PCI(-X)-Riserkarte| [[http://www.ebay.de/sch/i.html?_nkw=pci+riser+futro&_sacat=0|10,00€]]| |USB-Speicher | ~ 10,00€| |**Gesamt** | ~ **47,00€** | Die Preise der einzelnen Komponenten schwanken natürlich. Hier empfiehlt sich ein Blick auf Ebay & Co. Auch die Ausstattung der Futro's unterscheidet sich, so kann man bereits mit Glück mit Riserkarte und 2GB ausgestattetes Gerät erhalten. == Nachtrag == Marko hat mich auf ein günstiges EBay-Angebot für eine [[http://www.ebay.de/itm/142017687738|Futro S900]] hingewiesen. (Es wurden schon Preisvorschläge <20€ akzeptiert) Die S900 verbraucht ~5Watt mehr, hat aber einen PCIe-Steckplatz, mSATA und SATA (allerdings ohne SATA-Stromstecker) === Optionale Upgrades === ^Optional^Preis| |2 GB RAM (SO-DIMM DDR2)|~ 10€| |CPU (AMD Athlon L310)|~ 15€| |CPU-/Gehäuse-Lüfter|~ 5€| |USB-Sata-Adapter|~ 5€| Die 2GB Aufrüstung des Arbeitsspeichers empfiehlt sich grundsätzlich. Der Austausch geht sehr einfach von statten. Die Futro hat einen Speichersteckplatz, welcher bis zu 2GB unterstützt (DDR2-667MHz SO-Dimm). Der interne Compact-Flash-Speicher sollte gegen eine USB-Speicherlösung gewechselt werden. Bevorzugt sollte dabei eine USB-Festplatte, da ein USB-Speicherstick dürfte technologiebedingt die gleichen Probleme haben wie eine CF-Karte. Eine SSD wäre hier weit über das Ziel hinausgeschossen. Ein altes Notebook mit einem entsprechenden DDR2 Speicherriegel kann hier doppelt ergiebig sein, denn auch die Notebook Festplatte mit einem USB-Adapter als neues Speichermedium der Futro verwendet werden kann. Der Prozessor sitzt auf einem S1-Sockel (S1G1). Die Auswahl an passenden Prozessoren ist recht gering und weiterhin die passive Kühlung verwendet werden soll ist der AMD L310 (AMD Athlon L310 AMML310HAX5DM Mobile CPU Processor Socket S1 638pin 1.2GHz 1MB) kompatibel und läuft ohne Probleme. Nach dem Abschrauben des Kühlkörpers wird der Sockel mit einem Schraubendreher mit einer halben Drehung "aufgeschraubt", dann kann der alte Prozessor entnommen werden und der Ausstauschprozessor eingelegt werden. Die Fixierung läuft entsprechend mit einer halben Drehung der schwarzen Sockelschraube in die entgegengesetzte Richtung. Leider sind die Pins für einen 12V Prozessor oder Gehäuselüfter nicht angelötet, so dass dieses nachgeholt werden müsste. Danach bietet sich die Möglichkeit den Kühlkörper des Prozessors einwenig zubearbeiten, so daß ein Lüfter in diesen versenkt werden könnte. Alternativ könnte der Lüfter so angebracht werden, dass beide Kühlkörper angeblasen werden. Leider gibt es für auch hier keine Befestigung, so dass improvisisert wrden muss. Allerdings bringt diese Variante die besseren Kühlungsergebnisse. ===== IPFire ===== IPFire ist eine auf GNU/Linux aufsetzende Firewalldistribution. Ursprünglich ist basierte IPFire auf IPCop, mittlerweile ist IPFire kptl. eigenständig. Einer der grössten Vorteile ist die relativ einfache Bedienung und Administration dieser Firewall über das Webinterface. Besonders die Firewallregeln sind einfach umzusetzen. Durch den modulare Aufbau kann die diese Distribution einfach an die eigenen Bedürfnisse angepasst werden. IPFire wird unter der GPL lizenziert. ==== Installation ==== Die Installation gestaltet sich dank NCURSES-Assistent sehr einfach. Im Zweifel sei auf die [[http://wiki.ipfire.org/en/installation/step3|bebilderte Anleitung]] verwiesen. ==== Features ==== Eine kleine (unvollständige) Auflistung von Features: ^Sicherheit^Infrastruktur^Proxy^Extras/Addons| |Firewall (Netfilter)|DNS & DNSSEC|Squid|Datenbank| |Geofilter|DHCP|URL-Filter|Videodiskrecorder| |interne Netztrennung (WLAN,LAN)|NTP|Virenscanner|Datei- & Druckserver| |DMZ-Handling|Qos|Zeit-,Volumen-,Bandbreitenmanagement|Asterisk| |IDS|VLAN|Nutzerauthentifizierung|MailServer| |IPSec & OpenVPN|Wake on LAN|Klassenraumfunktionalität|TOR| |IPS|ADSL & VDSL-Support|Download-Accelerator|u.v.m| Auch wenn die Extras sehr verlockend sind sollte immer bedacht werden, dass eine Firewall ein Stützpfeiler der IT-Sicherheit ist. Grundsätzlich hat daher eine Firewall keine weiteren Aufgaben zu übernehmen, welche evtl. das eigene Sicherheitskonzept torpedieren. Dennoch ermöglicht diese Flexibilität auch einen Einsatz als Heimserver. Offizielle **IPv6**-Unterstüzung gibt es erst mit IPFire 3, bis dahin muss diese manuell integriert werden: * [[http://wiki.ipfire.org/en/add-ipv6/start|http://wiki.ipfire.org/en/add-ipv6/start]] * [[http://wiki.ipfire.org/en/add-ipv6/ipv6/extended|http://wiki.ipfire.org/en/add-ipv6/ipv6/extended]] (Warnhinweis) ==== Verwendung ==== * [[http://fireinfo.ipfire.org/profile/cf6369211e1aae2295f52e27f957c4c9a87b36a0|http://fireinfo.ipfire.org/profile/cf6369211e1aae2295f52e27f957c4c9a87b36a0]] * [[http://fireinfo.ipfire.org/profile/89ed8d6aac91d433ccd3baf3b8bf788e889a7b6c|http://fireinfo.ipfire.org/profile/89ed8d6aac91d433ccd3baf3b8bf788e889a7b6c]] * [[http://fireinfo.ipfire.org/profile/48e0a86993a41b00df75bba643c0c4bd72199474|http://fireinfo.ipfire.org/profile/48e0a86993a41b00df75bba643c0c4bd72199474]] * [[http://fireinfo.ipfire.org/profile/a7def997c5fa4fd029d8eaebfda01e6bfd12765b|http://fireinfo.ipfire.org/profile/a7def997c5fa4fd029d8eaebfda01e6bfd12765b]] * [[http://fireinfo.ipfire.org/profile/8cd7eddd464a22955d4486f60a4e8132b7c189c7|http://fireinfo.ipfire.org/profile/8cd7eddd464a22955d4486f60a4e8132b7c189c7]] * [[http://fireinfo.ipfire.org/profile/bb45798bff93942da2f90b25076850da642ef1f5|http://fireinfo.ipfire.org/profile/bb45798bff93942da2f90b25076850da642ef1f5]] * [[http://fireinfo.ipfire.org/profile/604a1e3b21bb1800b9e6e3be6101861ccc5435ab|http://fireinfo.ipfire.org/profile/604a1e3b21bb1800b9e6e3be6101861ccc5435ab]] * [[http://fireinfo.ipfire.org/profile/34f57516446d40aa1836eb65f2467e79488a3252|http://fireinfo.ipfire.org/profile/34f57516446d40aa1836eb65f2467e79488a3252]] * [[http://fireinfo.ipfire.org/profile/1ed17afeaedfb7a7056685876d5ee1fa3428a499|http://fireinfo.ipfire.org/profile/1ed17afeaedfb7a7056685876d5ee1fa3428a499]] ===== OPNsense ===== OPNsense setzt auf FreeBSD auf nutzt jedoch ASLR und LibreSSL. Die wichtigsten Unterschiede zu IP-Fire sind die IPv6-Unterstützung, als auch die Möglichkeit mehrere Internetprovider / -gateways parallel zu nutzen. OPNsense ist ein Fork von pfSense / m0n0wall. Gründe des Forks waren besonders die Quelltextqualität und die damit einhergehende Sicherheit. Lizenziert wird OPNsense unter der FreeBSD license: //Weiterverbreitung und Verwendung in nichtkompilierter oder kompilierter Form, mit oder ohne Veränderung, sind unter den folgenden Bedingungen zulässig:// * //Weiterverbreitete nichtkompilierte Exemplare müssen das obige Copyright, diese Liste der Bedingungen und den folgenden Haftungsausschluss im Quelltext enthalten.// * //Weiterverbreitete kompilierte Exemplare müssen das obige Copyright, diese Liste der Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien, die mit dem Exemplar verbreitet werden, enthalten.// ==== Installation ==== Die [[https://docs.opnsense.org/manual/install.html|Installation]] läuft in sehr wenigen Schritten ab. Für die Futro empfiehlt sich das VGA-Image. Nach Abschluss der Installation werden in der Konsole die Netzwerkkarten und -adresseinstellungen zugewiesen. Dabei sollte auch das Kennwort abgeändert werden. Danach kann jede weitere Konfiguration über das Webinterface vorgenommen werden. * default Login: root:opnsense ==== Features ==== Eine kleine (unvollständige) Auflistung von Features: ^Sicherheit^Infrastruktur^Proxy^Extras/Besonderheiten| |Stateful Firewall|DNS & DNSSEC|HTTP,HTTPS (TLS/SSL)|Multigateway / MultiWAN| |Geofilter|DHCP|FTP|[[https://de.wikipedia.org/wiki/Captive_Portal|Captive Portal]]| |interne Netztrennung (WLAN,LAN)|NTP|//Virenscannerunterstützung// |[[https://de.wikipedia.org/wiki/Common_Address_Redundancy_Protocol|CARP]] (virt. IPs)| |DMZ-Handling|Qos|ICAP|Certificate Authority| |IDS|VLAN|Nutzerauthentifizierung|Nutzer & Gruppenmanagement| |IPS|Wake on LAN|Zeit-,Volumen-,Bandbreitenmanagement|Monitoring, Reporting, Analyzing| |IPSec & OpenVPN|ADSL & VDSL-Support|Black-& Whitelisting|Universal Plug and Play| |2Factor Authorisierung|Lastverteiler|IGMP-Proxy|mobile Networking (3G 4G)| \\