Internet delen via server

Status
Niet open voor verdere reacties.

Frankos

Gebruiker
Lid geworden
2 mei 2006
Berichten
117
Ik heb de volgende opstelling in linux gemaakt:



Dit heb ik ook in Windows gemaakt en hiermee kreeg ik via de server, internet op de client.
Waardoor ik de server als firewall kan gebruiken.
Nu wil ik dit ook voor Linux gebruiken, maar lukt het me niet.
Ik kan vanaf server naar de client pingen en andersom, maar vanaf de client kan ik de DFGW niet pingen.
Ik weet dat ik in Windows geen DFGW heb ingesteld op de interne netwerkkaart op de server, maar in linux kon ik niet verdergaan zonder iets in te vullen.

Wie kan mij helpen?
 
Ik heb geen idee wat DFGW zou moeten zijn.
Default Gateway toevallig?

Over welke linux distro heb je het eigenlijk?
Moet de server niet zijn externe ip adres van de dhcp server van de provider krijgen, je hebt hem nu op een niet-publiek ip adres ingesteld?

Voor wat jij wilt doen (als ik je goed begrijp) moet je:
1 dnsmasq op je server draaien, dat is een dns forwarder (die ook dhcp server kan spelen overigens). Zo kunnen clients ook dns gebruiken.
2 IP forwarding aanzetten op je server.
3 Zorgen dat de IP adressen van je clients door de server ge-'masquerade' worden. Anders krijgen computers op het internet aanvragen van het IP adres van je client, waar ze vervolgens niets mee kunnen omdat 10.x.x.x ook een niet-publiek IP adres is.

Dit klinkt misschien allemaal ingewikkend, maar het valt best mee.
Ikzelf gebruik shorewall firewall om alle netwerk verkeer regels in te stellen. Shorewall kan ingewikkeld lijken op het eerste gezicht, maar dat valt best mee.

Ik kan je er in ieder geval wel verder mee helpen als ik eenmaal wat meer weet over je opstelling.
 
Bedankt voor je reactie!

DFGW is inderdaad Default gateway.

Ik heb 2 linux UBUNTU machine's.

Ik ga morgen het één en ander proberen en dan hoor je van me!

Alvast bedankt!

Ik heb geen idee wat DFGW zou moeten zijn.
Default Gateway toevallig?

Over welke linux distro heb je het eigenlijk?
Moet de server niet zijn externe ip adres van de dhcp server van de provider krijgen, je hebt hem nu op een niet-publiek ip adres ingesteld?

Voor wat jij wilt doen (als ik je goed begrijp) moet je:
1 dnsmasq op je server draaien, dat is een dns forwarder (die ook dhcp server kan spelen overigens). Zo kunnen clients ook dns gebruiken.
2 IP forwarding aanzetten op je server.
3 Zorgen dat de IP adressen van je clients door de server ge-'masquerade' worden. Anders krijgen computers op het internet aanvragen van het IP adres van je client, waar ze vervolgens niets mee kunnen omdat 10.x.x.x ook een niet-publiek IP adres is.

Dit klinkt misschien allemaal ingewikkend, maar het valt best mee.
Ikzelf gebruik shorewall firewall om alle netwerk verkeer regels in te stellen. Shorewall kan ingewikkeld lijken op het eerste gezicht, maar dat valt best mee.

Ik kan je er in ieder geval wel verder mee helpen als ik eenmaal wat meer weet over je opstelling.
 
Onzin, dat wekt ook nog eens alleen voor HTTP verkeer.
IP forwarding aanzetten en masquerading instellen met iptables of een firewall die dat voor je doet.
Da's alles

Ga jij daar dan de boel instellen, zoals je het omschreven hebt ? De doorsnee beginner is al blij, als ze zelf een programma geinstalleerd krijgen binnen linux, laat staan de dingen doen die je opnoemde ;)
 
Zou iemand mij nog even kunnen helpen?
Ik ben er laatst weer mee verder gegaan, maar het is nog steeds niet gelukt.
Heeft iemand misschien een handig stappenplan?

Hoor graag van jullie :)
 
Je zou eens kunnen beginnen met het installeren van:
  1. Shorewall
  2. Dnsmasq

Je server heeft een externe interface (die met het internet verbonden is). Ik neem aan dat dat eth1 is.
Je server heeft een interne interface, ik neem aan dat dat eth0 is.

/etc/netwerk/interfaces ziet er dan zo uit, als je provider dhcp gebruikt

auto eth1
iface eth1 inet dhcp

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0

/etc/shorewall/masq ziet er zo uit:
eth1 eth0

/etc/shorewall/zones
fw firewall
net ipv4
loc ipv4

/etc/shorewall/interfaces
net eth1 detect dhcp,tcpflags,norfc1918,routefilter,nosmurfs,logmartians,upnp
loc eth0 detect dhcp,tcpflags,nosmurfs,routeback,logmartians

/etc/shorewall/policy
$FW net ACCEPT
$FW loc ACCEPT
$FW all REJECT

loc net ACCEPT
loc $FW ACCEPT
loc all REJECT

net $FW DROP
net loc DROP
net all DROP

in /etc/default/shorewall stel je
startup=0
in op
startup=1

/etc/shorewall/shorewall.conf moet de regel
IP_FORWARDING=On
bevatten

Dan hoef je alleen nog maar dnsmasq te configureren. Laat maar weten als je zo ver bent.

Ik ben er dus van uit gegaan dat je provider dhcp gebruikt, zodoende wordt je externe interface automatisch geconfigureerd. Je interne interface heb ik in de range 192.168.0.1-254 gezet. Daar kan je natuurlijk voor kiezen wat je wilt.

Shorewall is een firewall die alle interfaces ziet als 'zones'. De namen van de zones definiëren we in dat zones bestand. In het interfaces bestand koppelen we de zones aan de interfaces en stellen we opties in. In het policy bestand stellen we in of netwerkwerkverkeer van de ene naar de andere zone mag. fw is een aparte zone, dat is de firewall zelf.
Dat masq bestand zorgt ervoor dat alle clients achter eth0 gemasquerade worden.

Succes, ik hoor het wel
 
Situatie is nu als volgt:

Internet werkt op de clients.
Ik heb een client met 10.0.0.2 en een client met 172.16.1.2
Werkt allemaal perfect en ze kunnen pingen naar de 10.1.1.1 en 172.16.1.1 op de server.
Alleen van de client 10.0.0.2 kan ik niet pingen naar 172.16.1.2 en andersom ook niet.
Hoe kan ik dit oplossen?
 
Kan je me uitleggen hoe je dat gedaan hebt?
Want het klinkt niet logisch dat je server wel gateway wil zijn naar het internet en niet naar een 2de interne interface.
 
Op de linux server het volgende ingesteld:

Ipforwarding
Ipmasquerading
Firewall Interne zone voor beide clients.
Firewall Externe zone voor server.

Werkt perfect, alleen kunnen clients niet naar elkaar pingen..
 
Je zou eens met tcpdump kunnen kijken waar het pingen stopt.
dus op de client die de ping verzend:
sudo tcpdump -i ethX

dat zal wel werken lijkt me, dus op de server
sudo tcpdump -i ethX
op de interface die met die client verbonden is.
als je daar ping verkeer ziet neem je de andere interface.

en tenslotte kan je op de andere client tcpdump draaien
 
Dat TCPdump werkt wel, maar wat is nut er precies van?
Hij geeft aan dat er verkeer is, maar pingen werkt nog steeds niet.
Als ik TRACERT 172.16.1.2 vanaf 10.1.1.2, geeft ie aan dat hij bij 10.1.1.1 uitkomt, maar dan niet meer verder komt..
Waar kan dit aan liggen?
 
Je vertelt iedere keer bijzonder weinig over wat en hoe je het gedaan hebt.
Welke firewall gebruik je eigenlijk?
Hoeveel interfaces zitten er in de die server?
 
Ik gebruik gewoon de standaard firewall op Linux Suse 10.
Er zitten hangen 3 interfaces aan.
1- 192.168.28.130 - Internet Connectie
2- 172.16.1.1 - Intern 172.16.1 netwerk
3- 10.1.1.1 - Intern 10.1.1 netwerk

Er zijn 2 clients verbonden.
1- 172.16.1.2 - verbonden met interface 2 op server.
2- 10.1.1.2 - verbonden met inferface 3 op server.

Beide hebben ze internet, door:

Ipforwarding
Ipmasquerading
Firewall Interne zone voor beide clients.
Firewall Externe zone voor server.

Alleen kunnen de beide clients elkaar niet pingen.
Mijn vraag is hoe dit kan? En of dit geregeld kan worden?

Alvast bedankt,
 
Je zou eens kunnen kijken of op de ene client de pings wel aankomen die je vanaf de andere client stuurt. Dat kan goed met dat tcpdump.
Als ze niet aankomen moet je iets in de instellingen van de firewall van de server instellen.
Komen ze wel aan, dan kan het iets met de route regels in je clients zijn.

Kan je bij die firewall niet iets van een log aanzetten? Dan kan je tenminste teruglezen wat je firewall doet.
Staat er toevallig iets in /var/log/syslog of /var/log/messages ?
 
=)

Na uren bezig zijn geweest, werk het!
Door middel van een aantal monitor manieren (tcpdump,ethereal,tracert) kwam ik erachter dat het probleem echt op de server zou moeten zitten, in de firewall.
De firewall uitgepluist (Susefirewall2) en mede door google kwam ik hier uit:
FW_ALLOW_CLASS_ROUTING
Deze moest geactiveerd zijn, om met andere netwerken te communiceren.
Deze geactiveerd en het werkt!

Bedankt voor de medewerking!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan