# Router aufsetzen.

## pHoboss

Hi ho,

hab heute gentoo installiert (was sonst wenn ich mich hier melden ^^), naja jedenfalls will ich den rechner zum router machen (unter anderem, also kein fli4l...) kann mir jmd sagen was ich da alles machen muss? oder gibbet nen gutes tutorial? hab grundkenntnisse in suse 7.3.... und englisch versteh ich auch.  :Smile: 

thx bye phoboss

----------

## tacki

also für ein normales routing mit nat, firewall port-forwarding und sowas reicht schon iptables...

dazu kann man noch einen dns-server (z.b. bind) und proxy-server (squid) installieren und fertig ist der fli4l-ersatz  :Smile: 

die installation läuft erstmal genau wie in den offiziellen install-docs. beim kernel-builden solltest du jedoch die netfilter-optionen nicht vergessen. dazu noch ein emerge iptables, emerge bin und emerge squid...

ein recht ausführliches und gutes howto zu (u.a.) iptables gibts hier: 

http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/IP-Masquerade-HOWTO.html

----------

## pHoboss

hmmm ok ich hab jetzt das netzwerk soweit laufen, also ich kann jetzt mit dem gentoo rechner ins internet, und auch den windows rechner pingen. aber das routing funzt irgendwie net.

ip forwarding is an, und iptables is auch am start. 

hier mal meine config:

eth0 hat die ip 192.168.1.1 und is ans dsl modem angeschlossen

eth1 hat die ip 192.168.1.2 und is mit einem crossover kabel an den windows rechner angeschlossen. der hat die ip 192.168.1.4, und als gw is 192.168.1.2 angegeben. route unter linux gibt folgendes aus:

ua-0048-04...      *             255.255.255.255 ppp0

192.168.1.0         *             255.255.255.0    eth1

standard     ua-0048-04...    0.0.0.0              ppp0

hab leider vorher nur unter suse nen router eingerichtet (was auch schon ne weile her ist), und leider sind alle tutorials die ich gefunden habe für suse geschrieben. jmd ne idee warum das nich läuft? weiss nich ob die infos reichen...  :Smile: 

thx bye pHoboss

----------

## siliconburner

versuchs dochmal mit fli4l ( www.fli4l.de) eine diskette, ein computer (board+strom+cpu(100mhz)+ram(8mb)+floppylaufwerk+2netzwerkkarten)

is einfach zu installen, und wen du ne festplatte übrig hast, kannste die ganze sache noch ewig ausbauen

ciao

----------

## pHoboss

naja wie am anfang gesagt, will ich kein fli4l benutzen weil ich noch andere sachen auf der kiste laufen lassen will.

----------

## Beforegod

Hast Du auch die Routing funktion eingeschalten?

echo 1 > /proc/sys/net/ipv4/ip_forward

----------

## Advo

Ich erinnere mich, in einem Tutorial mal gelesen zu haben, daß die beiden Netzwerkkarten nicht im selben Subnetz sein dürfen. Probier einfach mal, eth0 die IP 192.168.0.0 zuzuweisen.

Ansonsten probier doch mal den Einsatz von Proxies, das funktioniert auch ohne IP-forwarding. Zumindest läuft mein Router hier bestens ohne das IP-forwarding eingeschaltet ist.

Grüße

----------

## hopfe

Also die 192.168.0.0 ist eher ein Schlechte Idee, da dies die Broadcast Adresse des Subnetzes ist.  Besser wäre die 192.168.0.1 oder eine ähnliche Adresse.

----------

## pHoboss

ja forwarding is an.

hab jetzt die ip von eth0 von 192.168.1.1 auf 2.1 geändert.

hopfe wer hat was von 0.0 gesagt? ^^

wenn ich mich ins internet eingewählt habe sieht meine route so aus. 

Kernel IP routing table 

Destination Gateway Genmask Flags Metric Ref Use Iface 

ua-0048-04-01.h * 255.255.255.255 UH 0 0 0 ppp0 

192.168.2.0 * 255.255.255.0 U 0 0 0 eth0 

192.168.1.0 * 255.255.255.0 U 0 0 0 eth1 

default ua-0048-04-01.h 0.0.0.0 UG 0 0 0 ppp0 

und in meiner /etc/conf.d/net steht folgendes. 

iface_eth0="192.168.2.1 broadcast 192.168.2.255 netmask 255.255.255.0" 

iface_eth1="192.168.1.2 broadcast 192.168.1.255 netmask 255.255.255.0" 

wenn ich /etc/init.d/iptables start eingebe bekomm ich diese meldung. 

* Please make sure that /etc/conf.d/net has $iface_eth2 set 

* Loading iptables state and starting firewall... 

* Restoring iptables ruleset 

* Enabling forwarding for ipv4 [ ok ] 

diese meldung verwirrt mich etwas Please make sure that /etc/conf.d/net has $iface_eth2 set. 

warum soll ich eth2 da eintragen wenn das doch gar nich vorhanden ist.

----------

## Carlo

 *hopfe wrote:*   

> Also die 192.168.0.0 ist eher ein Schlechte Idee, da dies die Broadcast Adresse des Subnetzes ist.  Besser wäre die 192.168.0.1 oder eine ähnliche Adresse.

 

Broadcastadressen sind *.*.*.255.

Carlo

----------

## firaX

ich hab nen gentoo router laufen.

eth0 => ppp0 => T-DSL einwahl hab ihr die ip 192.168.1.1 gegeben

eth1 ist das IF das ins netzwerk führt (ich habs per switch , ist aber egal wie) diese hat die ip 192.168.0.1 

beachte: die eth0/ DSL netzwerkkarte hat .EINS.EINS die eth1 netzwerkkarte die ins netzwerk fürht NULL.irgendwas , das meinte der oben mit verschiedene subnetze.  die 1.1 eth0 addy ist eh nur dummy mässig weil der port ja für ppp0/DSL drauf geht, also achte einfach drauf dass sie nicht im selben subnetz ist.

Weiterhin rate ich dir alle netfilter options im kernel mit einzubauen , das sind so an die 20 stück wenn ich mich erinnere, allerlei optionen gibts da.

ich hab sie alle reinkompiliert, man weiss nie ob man die mal brauchen wird (ich wusste auch nicht welche nun lebensnotwendig sind und welche nicht).

Ok das wäre das netzwerk setup, als nächstes musst du mit dem iptables command regeln festlegen

Ich habe mir weitgehend meine eigenen geschrieben, ich poste mal was wichtig ist, schreib dir dies in eine text file und mac hsie ausführ bar , das muss bei JEDEM boot ausgeführt werden weil die regeln sich nach dem neustart löschen:

#!/bin/sh

######

##

##

#### irawall v0.2

##

##

##

#############

# Variables #

#############

# Apps

IPTABLES=/sbin/iptables

GREP=/usr/bin/grep

AWK=/usr/bin/awk

SED=/usr/bin/sed

IFCONFIG=/sbin/ifconfig

# Network Interfaces

INT_IF=eth1

INT_IP=192.168.0.1/24

EXT_IF=ppp0

LO_IF=lo

LO_IP=127.0.0.1

# Clients on the Network

SOLARIS=192.168.0.5

GALAXIA=192.168.0.3

XBOX=192.168.0.4

#############################

# Delete any existing rules #

#############################

$IPTABLES -F

$IPTABLES -t nat -F POSTROUTING

$IPTABLES -t nat -F PREROUTING

$IPTABLES -t mangle -F

$IPTABLES -F INPUT

$IPTABLES -F OUTPUT

$IPTABLES -F FORWARD

$IPTABLES -X

############################

# Constructing Policies ...#

############################

# Default policies

$IPTABLES -P INPUT DROP

$IPTABLES -P FORWARD DROP

$IPTABLES -P OUTPUT ACCEPT

##########################

# Constructing Router ...#

##########################

# Enable Masquerade and forwarding

$IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

$IPTABLES -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

$IPTABLES -A FORWARD -i $INT_IF -o $EXT_IF -j ACCEPT

$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT

# STATE RELATED for router

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

####################

# Opening ports ...#

####################

# Open ports on router for server/services

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 80

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 21

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 110

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 25

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 22

$IPTABLES -A INPUT -s 192.168.0.1 -j ACCEPT -p tcp --dport 3306

$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 113

# Special Interfaces

$IPTABLES -A INPUT -i $LO_IF -j ACCEPT

$IPTABLES -A INPUT -i $INT_IF -j ACCEPT

####################

# Closing Ports ...#

####################

$IPTABLES -A INPUT -i $EXT_IF -s 90.0.0.0/24 -j DROP

$IPTABLES -A INPUT -i $EXT_IF -s 10.0.0.0/8 -j DROP

$IPTABLES -A INPUT -i $EXT_IF -s 192.168.0.0/16 -j DROP

$IPTABLES -A INPUT -i $EXT_IF -d 127.0.0.0/8 -j DROP

$IPTABLES -A INPUT -i $EXT_IF -s 169.254.0.0/16 -j DROP

$IPTABLES -A INPUT -i $EXT_IF -s 172.16.0.0/12 -j DROP

$IPTABLES -A INPUT -p igmp -j DROP

#######################

# Forwarding ports ...#

#######################

##################################

# xMule ---> SOLARIS (192.168.0.5)

#

$IPTABLES -A PREROUTING -t nat -p tcp -i $EXT_IF --dport 4662 -j DNAT --to-dest $SOLARIS:4662

$IPTABLES -A FORWARD -p tcp -i $EXT_IF -o $INT_IF -s 0.0.0.0/0 -d $SOLARIS --dport 4662 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A PREROUTING -t nat -p udp -i $EXT_IF --dport 4672 -j DNAT --to-dest $SOLARIS:4672

$IPTABLES -A FORWARD -p udp -i $EXT_IF -o $INT_IF -s 0.0.0.0/0 -d $SOLARIS --dport 4672 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#

##################################

###################################

# Constructing Kernel Settings ...#

###################################

# Kernel Settings

echo 1 > /proc/sys/net/ipv4/ip_forward

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

echo 1 > /proc/sys/net/ipv4/ip_dynaddr

echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter

echo 1 > /proc/sys/net/ipv4/conf/$EXT_IF/rp_filter

########################

# Constructing Logs ...#

########################

$IPTABLES -A INPUT -j LOG --log-prefix "|iptables -- "

##########################

# Firawall constructed ! #

##########################

Das ist meine komplette firewall , hab sie bisschen om script dokumentiert. Wichtig für dich zum routen sind erstens: Die zeilen unter "constructing router" und zweitens die zeilen unter "constructing kernel settings" 

diese 2 abschnitte setzen die regeln für die internet freigabe fest.

des weiteren empfehle ich dir den abschnit "Default Policies".

diese schotten deinen router ab. d.h jede anfrage die von aussen ZU dir kommt wird abgeblockt. 

du siehst auch die abschnitte mit "opening ports" diese zeilen zeigen dir wie man dann ports öffnet um z.b. einen www server erreichbar zu machen.

Unter "forwarding ports" siehst du am beispiel XMULE wie man dem router sagt das ein bestimmter port zu nem anderen pc im netzwerk weitergeleitet werden soll...im fall von xmule/emule habe ich den xmule client auf meiner desktop box laufen und bin trotzdem erreichbar- > der router leitet die anfragen an die xmule ports zu meinem pc weiter.

Achte auch oben auf die variablen die ich gesetzt habe, so kann ich einfacher dinge ändern, $SOLARIS z.b. ist die variable für meine desktop box ip 192.168.0.5  wenn sich diese ändern würde könnt ich ganz oben ganz einfach SOLARIS=192.168.0.xxxx reinschreiben ohne das ganze script überarbeiten zu müssen.

die restlichen sektionen des scripts sind sicherheits teile, schadet nicht die auch zu benutzen.

Hoffe ich habe dir helfen können

----------

## toskala

was dir fehlen wird is die iptables nat rule, sollte in dem script drüber stehen. dann klappts auch mitm routen  :Smile: 

----------

## zypher

Man kann auch ganz wunnerbar rp-pppoe emergen und die dort enthaltenen firewall-regeln anpassen, was über iptables lernen und dann neue Regeln hinzufügen.

Übrigens muss/sollte die eth-Karte, die am dsl-modem hängt keine ip-adresse haben. Es reicht völlig, das Netzwerkkarten-modul zu laden.

----------

## firaX

zypher: keine ahnung ich geb ihr immer ne ip addresse, schaden tuts net (ist in windows ja net anders, das erstellt auch ne lan connection by default auch wenns unnötig ist)

----------

## Reppy

Hi,

 *Quote:*   

> * Please make sure that /etc/conf.d/net has $iface_eth2 set 
> 
> * Loading iptables state and starting firewall... 
> 
> * Restoring iptables ruleset 
> ...

 

ich würde gerne mal deine "ifconfig -a" sehen ;o)

es kann sein, dass diverese Netzwerkkarten unter gentoo auf den falschen eth-Devices hochkommen.

Wenn das der Fall ist, kleiner Tipp:

Installier die Netzwerkkarten im Kernel als Modul und schreib sie in die /etc/modules.d/aliases

alias eth0 8139too # Das wäre für eth0 eine Realtek8139 10/100Mbit

Der Netzwerkkarte am DSL-Modem solltest du keine IP-Adresse geben.

Stell in der /etc/conf.d/net einfach bei iface_ethX="up" ein   :Wink: 

Woher hast du den diese Firewall-Script ?

Ich empfehl das hier: https://forums.gentoo.org/viewtopic.php?t=159133

----------

## b00gy

 *zypher wrote:*   

> 
> 
> Übrigens muss/sollte die eth-Karte, die am dsl-modem hängt keine ip-adresse haben. 

 

warum sollte man das nicht tun?

gibt es da enen speziellen grund?

----------

## Reppy

wenn da eine statische drin steht, kann es bei Firewallregeln zu Fehlern kommen, außerdem wird die eh überschrieben, wenn man sich einwählt...

----------

