PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux DSLRouter/FW oder HOW-DO we DO?


Garfieldx
2003-03-02, 21:40:00
Servus,
da ich gerade (mal wieder) einen Linux DSL-Router/Firewall/Gateway aufgesetzt habe, dachte ich mir... warum das ganze den nicht mal zusammenfassen :)

Hardware:
irgendwas ab P1/K5 mit 100MHz oder mehr, 32MB Ram 500MB Platte, 2 Netzwerkkarten.
(in meinem Fall ein PII-233 64MB 4GB)

Verwendete Distri: Mandrake 9.0 (CD1 und CD2)
www.linux-mandrake.com/
Verwendete Software zur Konfiguration: Browser (Mozilla) & Putty (für WindowsPCs)
http://www.chiark.greenend.org.uk/~sgtatham/putty/

Installation:
(Setup im Expertenmodus)
... die ersten Schritte (Sprache/Tastatur/Maus/...) "normal" durchgehen.

Platte Partitionieren:
Dateisystem - JFS (z.B. ReiserFS)
eine Partition Mountpoint /
eine Partition Swap
eine Partition /var (weils da im Betrieb die laufenden Änderungen gibt -> Fragmentierung und so)

Paketauswahl:
alles abwählen, ausser Netzwerk/Firewall
Einzelne zusätzliche Pakete (ausser Standartpakete):
openssh
webmin
lynx (ConsoleWebbrowser)
linuxconf
Texteditor für Konsole, z.B. joe (-> CD2)

Netzwerksetup:
ADSL - Startup at boot
Einwahldaten (Provider/Kenndaten/...)
NIC (eth0 oder eth1), hier eth1

eth0 -> IP 192.1.1.254/255.255.255.0 (/24)
Rechnername: Router.%Arbeitsgruppe% (je nach Windowsnetzwerk)
eth1 -> IP 10.0.0.10/24 (wird von Mandrake so vorgegeben & sollte nicht geändert werden)

DNS -> laut Providerangaben (z.B.: 194.25.5.129 & 217.5.100.129)
Die Angaben zu Gateway/... werden zwar beim Setup verlangt, da sie aber nachher noch geändert werden halt irgendwas eintragen

Benutzer brauchen keine angelegt werden, daher nur root-pw vergeben,
neu booten & damit wäre das Installieren soweit fertig.

Die Konfiguration kann ab jetzt von einem beliebigen PC mit Win/Linux fortgesetzt werden.
1. Abschnitt - Konfig mit SSH-Client:
nach einlogen mit linuxconf:
Hier prüfen wir eigentlich nur nochmal die Netzwerkkonfig und aktivieren das Routing ->
Verwaltung/Netzwerk/Routing und Gateways/Einstellung Standards ->
Das Feld "Standart Gateway bleibt leer oder wird gelöscht, dann noch ein ein Kreuz bei "Aktiviere Routing" ->
Aktivieren.

Tip:
Wenn mal was nicht so will oder einfach zum nachschauen was den so los ist:
SSHClient -> einloggen und

tail -f /var/log/messages


Falls Fragen zur PPP Konfig auftauchen ->
/etc/ppp/pppoe.conf

Bsp:
...cut...
# Ethernet card connected to ADSL modem
ETH=eth1

# ADSL user name. You may have to supply "@provider.com" Sympatico
# users in Canada do need to include "@sympatico.ca"
# Sympatico uses PAP authentication. Make sure /etc/ppp/pap-secrets
# contains the right username/password combination.
# For Magma, use xxyyzz@magma.ca
USER=************

# Bring link up on demand? Default is to leave link up all the time.
# If you want the link to come up on demand, set DEMAND to a number indicating
# the idle time after which the link is brought down.
DEMAND=yes
DEMAND=600

# DNS type: SERVER=obtain from server; SPECIFY=use DNS1 and DNS2;
# NOCHANGE=do not adjust.
DNSTYPE=SERVER

# Obtain DNS server addresses from the peer (recent versions of pppd only)
# In old config files, this used to be called USEPEERDNS. Changed to
# PEERDNS for better Red Hat compatibility
PEERDNS=yes

DNS1=217.5.100.129
DNS2=194.25.2.129

# Make the PPPoE connection your default route. Set to
# DEFAULTROUTE=no if you don't want this.
DEFAULTROUTE=yes
...cut...

/etc/ppp/pap-secrets &
/etc/ppp/chap-secrets
enthalten die Einwahldaten (im Klartext!)

IPTABLES kann nu entweder mit #joe /etc/sysconfig/iptables konfiguriert werden - ODER
logout

2. Abschnitt - IPTABLES Konfig mit Webmin:
im Browser https:/192.1.1.254:10000/ - einloggen.

Als erstes die Version prüfen, benötigt wird 1.000 bzw. höher.
Zum updaten unter /webmin/webmin configuration/upgrade webmin die neuste Version installieren.
(Sollte direkt vom WebInterface aus gehen - sonst das RPM woanders herunterladen und im UpgradeMenü die lokale Datei angeben)
ACHTUNG!! Nach einem Upgrade ist webmin nicht mehr über HTTPS://.. sondern über HTTP:// aufzurufen
kann unter /webmin/webmin configuration/SSL Encyption wieder eingestellt werden.

IPTABLES kann nun über /Networking/Linux Firewall konfiguriert werden.
Im ersten Schritt sollten 2 Dinge erledigt werden, Zugang für uns, nix für den Rest...
Dazu jeweils eine Regel bei "Incoming packets" & "Outgoing packets" erstellen ->

Incoming:
ACCEPT If source is 192.1.1.0/24 and destination is 192.1.1.0/24 and input interface is eth0
ACCEPT If protocol is UDP and input interface is ppp0 and source port is 53
ACCEPT If protocol is TCP and input interface is ppp0 and source port is 80
Outgoing:
ACCEPT If source is 192.1.1.0/24 and destination is 192.1.1.0/24 and output interface is eth0
ACCEPT If protocol is UDP and output interface is ppp0 and destination port is 53
ACCEPT If protocol is TCP and output interface is ppp0 and destination port is 80

ALLE 3 regeln "Set default action to:" auf "DROP"

Damit dürfen wir von "innen" auf den Router zugreifen und mit dem Router ins www (->lynx)
Damit wir mit den Clients ins Netz kommen fehlt jetzt noch eine "Forward" Regel

Forwarded packets:
ACCEPT If source is 192.1.1.0/24 and output interface is ppp0


und damit unsere "internen" IPs "drausen" nicht stören...
In der Table (-> "Showing IPtable:" Network address translation (nat))

Packets after Routing:
Masquerade If protocol is TCP and output interface is ppp0
Masquerade If protocol is UDP and output interface is ppp0


Apply Configuration (ganz unten - "Activate at boot" auf yes).
Damit sollte erstmal alles funktionieren - ABER... SICHER ist diese Konfiguration noch nicht, da ALLES nach überall darf, keine Unterscheidung der Packets nach SYN/... gemacht wird, usw.

Deshalb unbedingt etwas lesen:

http://krnlpanic.com/tutorials/iptables.php
http://www.unixreview.com/documents/s=1236/urm0104l/0104l.htm
http://www.netfilter.org/ -> Daraus Speziell:
http://www.netfilter.org/documentation/HOWTO/cn/NAT-HOWTO.txt
http://www.netfilter.org/documentation/HOWTO/de/networking-concepts-HOWTO.txt
http://www.netfilter.org/documentation/HOWTO/cn/packet-filtering-HOWTO.txt

und... zuwenig wissen kann man beim Thema Firewalls eigentlich nicht ;)

Deshalb:
Forward Regeln für einzelne Ports/Protokolltypen, Packetbehandlung nach Type, Prerouting, ...

fröhliches konfigurieren und

cu GarfieldX

p.s.:
Wer noch mehr HowTos oder Ergänzung/Tipps hat... immer her damit :)
Könnten doch hier so eine kleine Sammlung machen?