Page 1 of 1

Hur gör man en enkel router med RH 8.0?

Posted: 10 March 2003, 14:04
by greenboy
Hej!

Hur gör man en enkel router med RH 8.0? Jag har två nätverkskort installerade i RH.
IP-adressen för eth0 är 195.237.12.120, netmask 255.255.255.0
IP-adressen för eth1 är 10.129.1.22, netmask 255.255.254.0.

Jag är helt nybörjade på dethär, så kan nån vara snäll och hjälpa mig?

Posted: 10 March 2003, 14:15
by kjell-e
Det här har precis avhandlats här. Om du söker på det som har skrivits under den senaste veckan bör du hitta det.

Det handlade om hur man sätter upp en RedHat 8.0 som brandvägg och router.

Posted: 10 March 2003, 14:19
by kjell-e
Titta på tråden "Behöver hjälp med firewall?!" i "Nätverk & Säkerhet".

Posted: 10 March 2003, 14:37
by greenboy
Fast jag använder kommandot

Code: Select all

echo 1 > /proc/sys/net/ipv4/ip_forward 
så fungerar det inte

När jag pingar från en datorn i nätverket som har netmask 255.255.254.0 så hittar den
inte nån dator i nätverket med netmask 255.255.255.0 och vice versa.

Vad kan man göra åt saken?

Posted: 10 March 2003, 14:53
by kjell-e
Då har du satt upp nätet fel eller har ett trasigt nät.

Gör ifconfig -a och lägg in resultatet här.
Gör även route -n och lägg in resultatet här.
Ta slutligen din /etc/resolv.conf och lägg in här.

Posted: 10 March 2003, 15:07
by greenboy
Med ifconfig -a

Code: Select all

eth0      Link encap:Ethernet  HWaddr 00:D0:B7:8F:B7:53
          inet addr:195.237.12.120  Bcast:195.237.12.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:237957 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6477 errors:0 dropped:0 overruns:0 carrier:0
          collisions:5 txqueuelen:100
          RX bytes:49856224 (47.5 Mb)  TX bytes:785419 (767.0 Kb)
          Interrupt:5 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 00:02:B3:9B:85:8E
          inet addr:10.129.1.24  Bcast:10.129.1.255  Mask:255.255.254.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:90 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:6274 (6.1 Kb)  TX bytes:2842 (2.7 Kb)
          Interrupt:9 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:112 errors:0 dropped:0 overruns:0 frame:0
          TX packets:112 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:7992 (7.8 Kb)  TX bytes:7992 (7.8 Kb)
Med route -n

Code: Select all

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
195.237.12.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.129.0.0      0.0.0.0         255.255.254.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         195.237.12.3    0.0.0.0         UG    0      0        0 eth0
Resultat i /etc/resolv.conf

Code: Select all

search hus.se
nameserver 195.237.12.17
nameserver 194.211.232.40
Hoppas det blir nån lösning av detta?

Posted: 10 March 2003, 17:21
by kjell-e
Då ska vi se. Du använder 10.129.0.0/23 på det interna nätet (10.129.0.0/255.255.254.0). Där har din linuxbrandvägg adressen 10.129.1.24 (inte 10.129.1.22) som du sa först.

Du har inte 10.129.1.24 på någon annan dator på det interna nätverket?
Har du ställt in så att datorerna på det interna nätverket har linuxbrandväggen som default gateway (10.129.1.24)?
För om datorerna på 10.129.0.0/23-nätet inte känner till hur man når någonting på 195.237.12.0/24-nätet fungerar det inte.

Med detta och NAT i brandväggen ska du kunna pinga datorer på 195.237.12.0/24, t.ex. 195.237.12.3 från det inre nätet, 10.129.0.0/23.

Försöker du komma åt det inre nätet från 95.237.12.0/24-nätet? För att kunna få det att fungera måste du sätta upp DNAT i brandväggen och sedan surfa eller vad du nu vill göra mot brandväggen, 195.237.12.120.

Alternativt gör du SNAT på all utgående trafik förutom den från 10.129.0.0/23 till 195.237.12.0/24. Då behövs en routingrad på alla datorer på 195.237.12.0/24-nätet som säger att de kan komma åt 10.129.0.0/23-nätet via 195.237.12.120. Lägger du inte till denna routingrad kommer datorerna på 195.237.12.0/24-nätet att skicka sådant som ska till 10.129.0.0/23 till routern 195.237.12.3 i tron att de adresserna finns bakom den.

Om du inte förstod kan jag rita en förklande skiss och lägga upp någonstans.

Posted: 10 March 2003, 17:46
by greenboy
Tack kjell-e!

Jag förstod rätt, så långt vad du menade! Men om det inte är så mycket till besvär, så skulle det vara vara vänligt av dig att skissa upp något!
Då skulle man man förstå det mycket bättre!

Posted: 10 March 2003, 17:47
by kjell-e
Jag ritar en bild när jag kommer hem.
Påminn mig om jag skulle glömma bort det.

Posted: 10 March 2003, 21:04
by greenboy
Fortfarande problem med router.

Jag har inte någon dator i det interna nätet med ip 10.129.1.24
Jag har satt default-gateway för nätverkskorten i det interna nätverket med ip 10.129.1.24.

Jag har också kört firewall-scriptet i tråden
http://bbs.linux.se/viewtopic.php?t=4618

Vad är ännu fel? Borde det ändras något i scriptet?
Som sagt, så skulle det vara vänligt av dig ifall du satt upp en skiss över det hela!

Obs! Jag kan numera ping ip:n 195.237.12.120

Posted: 10 March 2003, 22:27
by kjell-e
Har du i scriptet bytt plats på eth0 och eth1 så att det stämmer med hur du har det eftersom du har eth0 på utsidan och eth1 på insidan?
I scriptet är det precis tvärtom.

När du säger att du kan pinga 195.237.12.120, varifrån kan du pinga den?
Kan du från inre nätet pinga 195.237.12.3?
Om du från det inre nätet kan pinga 195.237.12.3 bör du kontrollera om du har rätt nameserver inställd på datorerna på det inre nätet.

Posted: 11 March 2003, 00:28
by kjell-e
Nu finns en skiss på ditt nät på:
http://stallman.cendio.se/pictures/greenboy.gif

Posted: 11 March 2003, 08:24
by greenboy
Tack för skissen!

Jag har kommit en bit på vägen. Nu kan jag pinga från en maskin i inre nätet
10.129.0.0/23 till yttre nätet 195.237.12.0/24, men inte tvärtom.

Jag postar också rc.firewall-scriptet som har funnits i tidagare sammanhang, men har bytt
plats på eth0 och eth1.

Vad borde ännu åtgärdas?

Code: Select all

#!/bin/sh
# Firewall rules

# Sätt upp standardregler
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT

# Rensa bort gamla brandväggsregler
/sbin/iptables -F
/sbin/iptables -t nat -F

# Rensa bort gamla kedjor
/sbin/iptables -X

# eth0 utsida
# eth1 insida

# Om maskeringen är kompilerad som modul
# aktivera raden nedan (genom att ta bort # i början på raden)
#modprobe iptable_nat

# Slå på routing
echo "1" > /proc/sys/net/ipv4/ip_forward

# Firewall rules
# Min egna IP-adress på eth0 (yttre interface)
MEeth0=`/sbin/ifconfig eth0 |sed -n '/inet/s/^[ ]*inet addr:\([0-9.]*\).*/\1/p'`
# Min broadcastadress på eth0
MYBROADCASTeth0=`/sbin/ifconfig eth0 |sed -n '/inet/s/^.*Bcast:\([0-9.]*\).*/\1/p'`

# Min egna IP-adress på eth1 (inre interface)
MEeth1=`/sbin/ifconfig eth1 |sed -n '/inet/s/^[ ]*inet addr:\([0-9.]*\).*/\1/p'`
# Min broadcastadress på eth1
MYBROADCASTeth1=`/sbin/ifconfig eth1 |sed -n '/inet/s/^.*Bcast:\([0-9.]*\).*/\1/p'`

# Skapa kedjan logdrop som loggar och kastar trafiken
/sbin/iptables -N logdrop
/sbin/iptables -A logdrop -j LOG
/sbin/iptables -A logdrop -j DROP

# Logga och kasta nya TCP-paket som inte är SYN-paket
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN "
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN "
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

######################## Trafik till själva brandväggsdatorn ####################

# Logga och spärra ut netbus
/sbin/iptables -A INPUT -p tcp --destination-port 12345 -j logdrop
/sbin/iptables -A INPUT -p udp --destination-port 12345 -j logdrop

# Tillåt att prata med sig själv
/sbin/iptables -A INPUT --in-interface lo --source 127.0.0.0/8 -j ACCEPT
/sbin/iptables -A INPUT --in-interface lo --source $MEeth0 -d $MEeth0 -j ACCEPT
/sbin/iptables -A INPUT --in-interface lo --source $MEeth1 -d $MEeth1 -j ACCEPT

# Spärra ut avsändaradress 127.0.0.0/8 från omvärlden (som inte kommer
# från loopback)
/sbin/iptables -A INPUT --in-interface ! lo --source 127.0.0.0/8 -j DROP

# Spärra trafik som kommer till broadcastadressen på yttre nätet
/sbin/iptables -A INPUT -d $MYBROADCASTeth0/32 -j DROP

# Släpp in ICMP-trafik
/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT

# Släpp in trafik till egna servertjänster
# Släpp in trafik till servertjänster på låga portar
# Tjänst protokoll klientportar serverport
# ssh tcp 1-65535 22
/sbin/iptables -A INPUT -m state --state NEW -p tcp --syn --destination-port 22 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -p tcp --destination-port 22 -j ACCEPT

# smtp (mailserver)  tcp 1-65535 25
/sbin/iptables -A INPUT -m state --state NEW -p tcp --syn --destination-port 25 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -p tcp --destination-port 25 -j ACCEPT

# www tcp 1-65535 80
/sbin/iptables -A INPUT -m state --state NEW -p tcp --syn --destination-port 80 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -p tcp --destination-port 80 -j ACCEPT

# Släpp in trafik från ntp-servern 1.2.3.4 port 123 (ändra till din
# nätleverantörs ntp-server) till port 123
/sbin/iptables -A INPUT -p udp --source 1.2.3.4 --sport 123 --destination-port 123 -j ACCEPT


# Släpp fram svarstrafik
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

###################### Trafik ut/in mellan Internet och interna nätet ###########################

# FORWARDREGLER
# Spärra trafik som kommer till broadcastadressen
/sbin/iptables -A FORWARD --in-interface eth0 -d $MYBROADCASTeth1/32 -j logdrop
/sbin/iptables -A FORWARD --in-interface eth1 -d $MYBROADCASTeth0/32 -j logdrop

# Släpp ut trafik från interna nätet, och släpp in svarstrafik
/sbin/iptables -A FORWARD --in-interface eth1 -j ACCEPT
/sbin/iptables -A FORWARD --in-interface eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Lägg på maskering på utgående trafik som ska ut till Internet så att
# det ser ut som att det är brandväggens utsida som surfar
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $MEeth0
#
# Om du får din adress på yttre interfacet, eth0, dynamiskt via
# t.ex. dhcp ska följande rad användas istället för SNAT-regeln ovan:
# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Notera att MASQUERADE gör av med lite mer CPU-kraft än SNAT.
#
# Om du får din adress dynamiskt på eth0 lägg även till följande rad:
# echo "1" > /proc/sys/net/ipv4/ip_dynaddr


# Logga och spärra resten
/sbin/iptables -A INPUT -j logdrop
/sbin/iptables -A FORWARD -j logdrop

# För RedHat, spara brandväggsskyddet i /etc/sysconfig/iptables så att det körs vid boot.
iptables-save > /etc/sysconfig/iptables 

Posted: 11 March 2003, 12:08
by kjell-e
Om en dator på det gula nätet i skissen ska kunna komma åt någonting på det interna nätet (gröna nätet i skissen) måste den datorn ha en rad i sin routingtabell som säger att det gröna nätet, 10.129.0.0/23 finns att nå bakom 195.237.12.120.

Om du har gjort detta kommer trafiken att leta sig in till det interna (gröna) nätet. Defaultgateway för datorerna på det gula nätet ska fortfarande vara 195.237.12.3.

När datorerna på det interna nätet svarar går svarstrafiken ut genom brandväggen och avsändaradressen skrivs om så att den ser ut att komma från brandväggen.

# Lägg på maskering på utgående trafik som ska ut till Internet så att
# det ser ut som att det är brandväggens utsida som surfar
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $MEeth0

Nu får datorn på det gula nätet svar från någon helt annan än den förväntade sig.

Om du byter ut NAT-raden mot en som skriver om avsändaradresserna förutom när trafiken ska direkt till 195.237.12.0/24 så bör det fungera bättre:
/sbin/iptables -t nat -A POSTROUTING ! -d 195.237.12.0/24 -o eth0 -j SNAT --to $MEeth0

Posted: 11 March 2003, 13:29
by greenboy
Du sa att en dator i gula nätet måste ha en rad i sin routingtabell, som säger
att gröna nätet, 10.129.0.0/23 finns att nå bakom 195.237.12.120.

Var sätter man denna rad i Linux, resp. Windows 2000?

Det kan hända att jag är helt på fel spår.
Hoppas du har tålamod med mig!

Posted: 11 March 2003, 14:42
by kjell-e
Hur du gör i windows får någon annan svara på för det har jag ingen aning om.

I Linux kan du sätta upp den för hand med:
route add -net 10.129.0.0 netmask 255.255.254.0 gw 195.237.12.120

I RedHat kan man lägga in routingraden i filen /etc/sysconfig/static-routes
Den raden ska då se ut enligt följande:
eth0 net 10.129.0.0 netmask 255.255.254.0 gw 195.237.12.120

Posted: 11 March 2003, 15:43
by greenboy
Fast jag följer instruktionerna i det förra inlägget, så det fungerar det att pinga! Fortfarande samma problem!

Jag pingar från en annan RH-maskin.

Resultat med RH-maskinen jag pingar ifrån
ifconfig -a

Code: Select all

eth0      Link encap:Ethernet  HWaddr 00:07:E9:0B:7D:31
          inet addr:195.237.12.110  Bcast:195.237.12.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9722 errors:0 dropped:0 overruns:0 frame:0
          TX packets:147 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1768968 (1.6 Mb)  TX bytes:12134 (11.8 Kb)
          Interrupt:10 Base address:0x5000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4682 (4.5 Kb)  TX bytes:4682 (4.5 Kb)
Det va märkligt, vet du vad som kan vara för fel?

Posted: 11 March 2003, 18:02
by kjell-e
Ge mig en route -n från samma maskin också så är det lättare att hitta felet.
Använder du IP-adress eller DNS-namn när du pingar?

Titta även i brandväggsloggarna (/var/log/messages) på brandväggsdatorn. Om det är någon trafik som spärras hittar du den där om du loggar vilket jag vill minnas att du hade med regler för sist i scriptet.

Posted: 11 March 2003, 18:14
by kjell-e
Om du kör med exakt de reglerna du lade in fungerar det inte eftersom dina forwardingregler inte släpper in någonting mer än svarstrafik.

Code: Select all

# Släpp ut trafik från interna nätet, och släpp in svarstrafik
/sbin/iptables -A FORWARD --in-interface eth1 -j ACCEPT
/sbin/iptables -A FORWARD --in-interface eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Du behöver lite regler som släpper in t.ex. ping och eventuellt någonting mer beroende på vad du vill kunna komma åt. Se dock till att släppa in så lite som möjligt.

Här är två exempel. Den första regeln släpper in pingpaket från det gula nätet och den andra släpper in ssh från det gula nätet.

Code: Select all

# Släpp in ping, ICMP Echo request från 195.237.12.0/24
/sbin/iptables -A FORWARD --in-interface eth0 -s 195.237.12.0/24 -p icmp --icmp-type 8 -j ACCEPT

# Släpp in ssh från 195.237.12.0/24
/sbin/iptables -A FORWARD --in-interface eth0 -s 195.237.12.0/24 -p tcp --dport 22 -j ACCEPT

Posted: 12 March 2003, 10:06
by greenboy
Tack för all din hjälp kjell-e! Nu fungerar det utmärkt!

Posted: 12 March 2003, 13:09
by greenboy
Att göra en routingtabell i Windows 2000, görs på följande sätt:

Code: Select all

route add  10.129.0.0 mask 255.255.254.0 195.237.12.120 

Posted: 12 March 2003, 13:28
by kjell-e
Hur sparar man en routingtabell i windows2000?

Posted: 12 March 2003, 13:37
by trekkie78
Hmm... När du kör det där kommandot så sparas nog routingtabellen (tror jag - kan givetvis ha fel). x:\windir\system32\drivers\etc\ innehåller filen om jag inte minns helt fel.

//trekkie
kjell-e wrote:Hur sparar man en routingtabell i windows2000?

Posted: 12 March 2003, 13:52
by greenboy
Man måste använda växeln -p, t.ex

Code: Select all

route add -p 10.129.0.0 mask 255.255.254.0 195.237.12.120
Då kommer den att kvarstå även om datorn startas.

Posted: 12 March 2003, 14:34
by Dr-One
ingen fil, det är dynamisk information. finns i ram minnet. troligen sparas det i registret. iaf de som du lägger till manuelt med route add -p

Posted: 12 March 2003, 15:46
by trekkie78
Ok. Mitt minne måste ha svikit mig. Alltid lär man sig något nytt! :-)

//trekkie

Posted: 12 March 2003, 16:11
by greenboy
Vilket register?!

Posted: 13 March 2003, 15:17
by Dr-One
Kommer inte ihåg!
Nån annan, som råkar veta detta?

Posted: 13 March 2003, 15:23
by trekkie78
"Windows registret". Start -> Kör -> Regedit

//trekkie

Posted: 31 May 2003, 11:01
by greenboy
kjell-e wrote: Nu finns en skiss på ditt nät på:
http://stallman.cendio.se/pictures/greenboy.gif
Jag såg att du har skissen kvar, om du vill så kan du gärna
ta bort den om du vill! :)

Posted: 13 June 2003, 09:42
by warzo
greenboy wrote:Du sa att en dator i gula nätet måste ha en rad i sin routingtabell, som säger
att gröna nätet, 10.129.0.0/23 finns att nå bakom 195.237.12.120.

Var sätter man denna rad i Linux, resp. Windows 2000?

Det kan hända att jag är helt på fel spår.
Hoppas du har tålamod med mig!
Ööh, behöver du varken NAT eller firewall igång här, då du skall ha trafik att löpa åt båda hållen? Det låter som om du lägger op en router som enbart skall fixa så att två psykiskt olika nätverk hittar varan.