Debian-Router auf CompactFlash-Karte
Heute habe ich mich drangesetzt und einen DSL-Router mit Debian GNU/Linux 6 Squeeze aufgesetzt. Eigentlich hatte es der alte Linksys-Router noch getan, aber ich will mehr Kontrolle und später auch noch mit IPv6 experimentieren. Dazu hatte ich mir neulich einen PC Engines ALIX 2 angeschafft, eine 512 MB CompactFlash(CF)-Karte hatte ich noch da. Das System habe ich Anfang dieser Woche soweit vorbereitet, das das Root-Filesystem read-only eingehängt wird. Nun waren nur noch ein paar Kleinigkeiten zu erledigen.
Software
Installiert hatte ich Debian 6 Squeeze als Minimalsystem mit SSH-Server. Für den Router habe ich dann noch ein paar Pakete zusätzlich installiert:
- pppoeconf - weil damit die DSL-Konfiguration zum Kinderspiel wird
- ez-ipupdate - ich habe eine DynDNS-Adresse für mein Hausnetz
- dnsmasq - für DNS und später auch DHCP
- iptables-persistent - Paketfilterregeln dauerhaft machen
- busybox-syslogd - der protokolliert im Hauptspeicher und schreibt nichts auf die Platte
- tcpdump - wenn ich mal genau wissen will, was los ist
- iperf - für "Performance-Messeungen" zwischendurch
APT anpassen
Auf dem Router will ich keine Quellpakete haben. Also habe ich in
/etc/apt/sources.list
alle Zeilen mit deb-src entfernt. Das hat den
Vorteil, dass ich damit auch unter /var etwas Platz schaffen kann:
# rm /var/cache/apt/srcpkgcache.bin
# rm /var/lib/apt/lists/*Source*
# apt-get update
Iptables
Momentan habe ich noch nichts für mich passendes gefunden, mit dem ich die
Paketfilterregeln einfacher schreiben kann. Sonst nehme ich immer ferm, aber
das würde mir perl und perl-modules nachziehen, das scheint mir momentan
etwas viel für den Router zu sein. Schließlich geht es auch so mit iptables
und so viele Regeln habe ich noch nicht.
Die wichtigste Regel ist für das Masquerading, damit die Verbindungen über den Router nach aussen funktionieren:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQERADE
Dann habe ich noch eine Port-Forward-Regel um von aussen auf einen SSH-Server in meinem Hausnetz zu kommen.
# iptables -t nat -A PREROUTING -p tcp --dport 12345 \
-j DNAT --to-destination 1.2.3.4:22
Regeln dauerhaft speichern
Wenn die Paketfilterregeln getestet sind und zur Zufriedenheit funktionieren, mache ich sie mit folgenden Befehlen für den nächsten Neustart dauerhaft:
# remountrw
# iptable-save > /ro/etc/iptables/rules
# remountro
Die Datei /ro/etc/iptables/rules liegt im Dateisystem auf der CF-Karte im Verzeichnis /etc/iptables und wird auch an dieser Stelle im Gesamtdateisystem eingeblendet. Würde ich direkt nach /etc/iptables/rules schreiben, landete die Datei in /rw/etc/iptables/rules und wäre nach einem Neustart weg.
Posted 2011-04-15