Debian als Router mit PCEngines WRAP

Im Moment schreibe ich mir ein kleines Debian mit debootstrap und ein paar Scripten um mit einem Wrap wrap1e203 von PC Engines einen Router zu betreiben.

Vorab zu Wissen

Ich habe letzte Woche mein WRAP verkauft, wollte aber die Gedächtnissstütze nicht einfach löschen.
Der Artikel ist nicht komplett ausgearbeitet, sprich rsyslog etc. Debian als Router mit PCEngines WRAP sollte als Image damit laufen.
Somit hoffe ich, dass sie vielleicht doch noch Jemand zu nütze ist.

Hardware

WRAP1e203

CPU: 233 MHz AMD Geode SC1100 CPU
DRAM: 128 MB SDRAM
Speicher: CompactFlash card
Stromanschluss: DC oder passives POE, min. 7V max. 20V
Management: Watchdog timer in der CPU; LM77 Thermalsensor
Drei LEDs auf der Vorderseite, Ein kleiner Druckknopf
Erweiterungen: 1 miniPCI slot, LPC bus, I2C bus
Netzwerk: 3 NICs (National DP83816)
Größe: 152.4 x 152.4 mm

Das WRAP ist der Vorgänger des Alixboards
Ein WRAP ist bei mir vorhanden und nach dem Umzug steht leider kein Geld für ein Alix zur Verfügung, irgendwann kommt auch das.

Wieso

Zuviel Zeit.
Nein, ich brauche einen einfach Proxy und eine Instanz welche mich mit dem geringsten Stromverbrauch vor dem bösen im Internet schützt.
Ich nehme ein Debian, weil ich Unterstützung für IPV4 und IPv6 und im Moment pfSense jene nicht bietet erst seit dem Update auf 2.1 bietet.
Erst die Version 2.1 wird mir die Unterstützung bieten und im Moment ist leider danke des Modem der KabelBW auch nicht an ein openVPN für Android oder iPhone zu denken

Die Aufgaben

– Squid nicht für typische Proxyaufgaben, nur für squidGuard
– Eigener DNS-Server und DHCP-Server
– Firewall

Herangehensweise

Die ist in dem eigentlichen Sinne keine Anleitung, sondern nur ein kleiner Einblick/Überblick.
Von Copy’n’Pasteanleitungen halte ich nicht viel.
Ich bin mir aber sicher, dass mit einem kleinen Einstieg und einen Fingerzeig auf die Dinge welche auf einem zukommen, hat man einen Anfang und kann lernen und durchstarten.
Und ich bin → nicht für die Sicherheit Eures Netzwerkes zuständig.

CFKarte bekommt eine komplette Partition, ext2 reicht.
Wird in das System ( mkdir /mnt/cf && mount /dev/SDKARTENPARTITION) eingebunden und per

debootstrap --arch i386 wheezy /mnt/cf http://ftp2.de.debian.org/debian/

wird ein minimales Debian aufgespielt.

chroot vorbereitet:

root@takeshi:/home/seraphyn# mount sysfs /mnt/cf/sys -t sysfs
root@takeshi:/home/seraphyn# mount -o bind /dev /mnt/cf/dev
root@takeshi:/home/seraphyn#  mount -o bind /dev/pts /mnt/cf/dev/pts
root@takeshi:/home/seraphyn# mount proc /mnt/cf/proc -t proc

In das erstellte System wechseln

chroot /mnt/cfcard /bin/bash

Passwort für root ändern, Anwendungen installieren und für das erste booten konfigurieren

passwd
aptitude install console-setup language-env locales localepurge 
dpkg-reconfigure locales
dpkg-reconfigure tzdata
pico /etc/kernel-img.conf
# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
aptitude install linux-image-486 openssh-server

/etc/default/grub erweitern

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_CMDLINE_LINUX_DEFAULT="quiet console=ttyS0,38400n8 reboot=bios"
aptitude install grub2

Vorübergehende Adresse einrichten um das System zu vervollständigen und zu testen.
Später noch die DMZ einrichten

 # /etc/network/interfaces
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet static
        address 192.168.0.118
        netmask 255.255.255.0
        gateway 192.168.0.1
 
auto eth1
iface eth1 inet dhcp
 
auto eth2
iface eth2 inet dhcp

auto eth3
iface eth3 inet dhcp

auto eth4
iface eth4 inet dhcp

Eintrag in /etc/modules, die LEDs sollen funktionieren

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
ledtrig-default-on
ledtrig-heartbeat
ledtrig-gpio
ledtrig-timer
leds-wrap

rsyslog konfigurieren, damit die Logs auf den im internen Netz befindlichen Syslogserver geschrieben werden.
Wenn dies nicht gewünscht ist, würde ich raten die Logs abzuschalten.

Schauen was wir nicht brauchen, aber installiert ist

aptitude search '!?essential'|grep ^i

deborphan und debfoster können hier sehr gute Freunde sein

Das System aufräumen und ein Backup per

 dd if=/dev/sdc | gzip > ./debian1921680118_WR4P_RAW.img.gz

machen.

Wie geht es nun weiter

Ab hier kann man sich entscheiden, welche Firewall man nehmen möchte und ob die weiteren Partner ein rudimentäres dnsmasq ist, oder ein richtiger dhcp3-server mit einem DNS wie bind oder PowerDNS etc es sind, welche einen nun täglich begleiten sollen.
dnsmasq hatte ich immer gerne als DNS-Server genommen und den DHCP3-Server als DHCP-server.
Irgendwie ist die Konfiguration von dnsmasq als DHCP… mag ich einfach nicht, obwohl man sich einen Dienst spart.
Die Konfiguration ist mir mit dem normalen DHCP3-Server gewohnter.

Als Firewall kann man sich auf die schnelle selbst ein Script schreiben, Shorewall oder fwbuilder nehmen.
fwbuilder hat seine Vorteile, denn als Administrator kann man mit dieser Anwendung auch seine Cisco, BSD-Maschinen etc remote administrieren. Meiner Meinung nach großes Kino. Es wird aber Fachwissen vorrausgesetzt.

Damals hat mir den kompletten Durchblick in iptables das Buch
„Das Firewall Buch. Grundlagen, Aufbau und Betrieb sicherer Netzwerke mit Linux“ von Wolfgang Barth erleichtert (( Das Firewall-Buch.: Grundlagen, Aufbau und Betrieb sicherer Netzwerke mit Linux. bei Google Books)). Für mich immer noch eines der besten Bücher, wobei ich glaube, dass IPv6 nicht in dem Buch vorkommt.
Aber wer es für LAU findet, zugreifen und später IPv6 lernen ;)

Das Erstellen einer Regel für Squid
Das Erstellen einer Regel für Squid

fail2ban und Konsorten kann man ignorieren, denn alle Dienste, wie z.B. der DNS und z.B. SSH sollte nur auf die interne Adresse lauschen (ListenAddress) und nach besten Gewissen abgesichert werden. Auch werden keine Dienste in Richtung Internet angeboten.
Meine Meinung ist, wer das für sich ändern möchte, kann dies natürlich tun ツ
Wer eine nicht wirklich mit Updates versorgte proprietär betriebene Maschine ( EOL = End of Lifecycle), wie z.B. ein NAS von DLink etc, besitzt, sollte für diese den Internetzugang am besten verbieten.

Schafft das WRAP die Aufgabe ?

Ohne wirklich große Arbeit hat die WRAP noch 100MB für das Dasein als Router vorhanden.
Ausreichend bei mir bis Dato, sobald die KabelBW Ihren Aufgaben nachkommt, kann man wieder große Geschütze auffahren.

Ich kann es kaum erwarten