Gå til innhold

Linuxserver som router/switch og evt. modem?


ventle

Anbefalte innlegg

Skal sette opp en enkel linuxboks som skal dekke flere ulike oppgaver i heimen. Primært filserver, SVN-server, webserver o.l., men jeg lurte på om det er mulig/trivielt/hensiktsmessig å også bruke den som tilgangspunkt mot internett, dvs. at andre pcer jeg vil koble til internett og hjemmenettverket gjør det gjennom denne (kablet nettverk).

 

Tanken er da å få tak i ett fireporters nettverkskort (Intel PRO/1000MT quad, f.eks, som fåes på ebay for noen hundrelapper), og sette opp routingtabell og dhcp-server internt på serveren slik at dette fungerer som en switch/router, og så ha ett annet nettverkskort (innebygd på hovedkortet f.eks.) som uplink mot bredbåndsmodemet. Boksen vil da også kunne fungere som brannmur og VPN-server for tilgang til hjemmenettverket utenfra.

 

Er dette en mulig løsning, og er det greit å sette opp? Det er her kun snakk om kablet nettverk, trådløst er ikke interessant.

 

Til slutt, jeg har internett via kabel-tv (Canal Digital). Finnes det noe kort jeg kan sette i serveren som kan erstatte kabelmodemet, og dermed få enda en boks ut av veien?

Lenke til kommentar
Videoannonse
Annonse

Alle Linux distribusjoner fungere fint som router og brannmur, ihvertfall hvis man ikke er redde for å konfigurere iptables selv. Til DHCP og DNS servering, anbefale jeg sterkt å bruke dnsmasq - det er svært lett å konfigurere. Og til VPN er OpenVPN det letteste og mest fleksibel løsningen.

 

Men selv om Linux passer utmerket til brannmur og router, er det sjelden god sikkerhetspraksis å blande server funksjonalitet med brannmur/router funksjonalitet. Man ønsker heller å holde brannmuren så enkelt som mulig for å minimisere angripsmuligheter.

 

Hvorfor ikke bare bruke en vanlig hardware firewall/router? Kjør gjerne OpenVPN server på Linux boksen med port-forwarding gjennom routeren (det er en av grunnene til å velge OpenVPN - det er mye lettere til slike routing enn IPSec osv.). Hjemme kjører jeg også DHCP/DNS server på Linux serveren istedenfor hardware firewall/router'en. Men selve brannmuren er en egen boks.

 

Dersom du vil gjøre noe litt mer morsomt med brannmuren, kan man kjøpe en billig boks og omprogrammere den med f.eks. OpenWRT Linux eller monowall BSD.

Lenke til kommentar

Takker for svar. Pfsense ser jo ut til å ha god kontroll på de nettverksrelaterte oppgavene, men er kanskje ikke like beinkløyvd å bruke til de andre tingene jeg har tenkt å bruke boksen til. ClearOS ser ut som en god komplett løsning (har ikke SVN ut av boksen, men det er vel ikke mye hokus pokus å sette opp selv), men er det noen gode grunner til å velge det fremfor for eksempel Ubuntu som er den distroen jeg kjenner best om jeg ikke er redd for å bruke litt tid på å installere og konfigurere de tjenestene jeg trenger?

Lenke til kommentar

Hei

 

Kjører selv XP som gateway/filserver/webserver/FTP/squeezebox/PVR harddisk til Dreambox/Torrent nedlasting/Canal Digital Kortdeling/pluss diverse annet småtteri.

 

Kan jo like godt anbefale Ubuntu som server, Jeg er gammel WIN mann.Jeg får ALT til å virke der..;)

Har testet Linux endel, men jeg blir visst aldri heeelt fortrolig med det.

 

Hvis du har peil på Windows og, og ikke har lyst til å lære linux, Prøv XP som server.

 

Mitt viktigste tips til deg hvis du skal ha en ALT-I-ETT server er:

ALDRI ALDRI ALDRI brukt den som en bruks-PC..!

Installer de tjenestene du skal ha på den, og la den være i fred....

(surfing og testing av software er fyfy på server = ustabil)

Og hvis den blir ustabil, mister du alt....internett...filtilgang...webserver

 

Kort oppsummering.......

 

Alternativ 1 Windows

 

- Godt utprøvd

- Meeget god driverstøtte

- Mye hjelp på nett

- Mye tigjengelig software

- Lettere å lære for en som kan litt windows fra før

 

 

Alternativ 2 Ubuntu

- Godt utprøvd

- God driverstøtte

- Mye hjelp på nett

- en del tilgjengelig software (mere gratis en windows)

- Vanskeligere å lære seg hvis man ikke kan noe om linux fra før

 

 

Hvis du går for windows alternativet, kan jeg hjelpe deg litt med valg av software om ønskelig.

Lenke til kommentar
  • 2 måneder senere...

Da er dette prosjektet realisert, i hvertfall delvis. Boksen er oppe og går, har ett Asus P8B75-V hovedkort og ett HP NC360T to-ports nettverkskort, dvs tre stk gigabit-porter så langt. Ytterligere ett nettverkskort, ett Silicom fireporters er på vei i posten. Ubuntu 12.04 er lagt inn.

 

Jeg ser for meg følgende nettverksoppsett:

eth0, nettverksporten på hovedkortet, blir uplink mot kabelmodemet og internett.

eth1-6, portene på de dedikerte nettverkskortene, blir portene som danner mitt lokalnettverk.

 

Maskiner i lokalnettet får fast (eller dynamisk, om jeg gidder å sette opp DHCP) IP-adresse i rangen 192.168.x.x.

Alle portene på serveren som kobles mot lokalnettet får samme IP-adresse, som er den adressen maskinene i lokalnettet vil bruke som gateway

Routingtabellen på serveren settes opp slik at forespørsler til 192.168.x.x-adresser viderekobles lokalt, mens alle andre adresser/domenenavn viderekobles til internett (eth0). Eller bør jeg sette opp en lokal DNS-tjeneste med egne regler for 192.168.x.x-adresser lagt inn?

Alle porter mot internett er som default stengt, så åpner jeg bare de portene jeg trenger, som en basic brannmurfunksjonalitet. Ser for meg å bruke VPN til å kontakte maskiner i lokalnettet utenfra, slik at de er minst mulig eksponert mot nett. Noen andre tips for å opprettholde sikkerheten samtidig som jeg opprettholder konnektiviteten med internettet?

 

Noen tanker/tips?

Endret av ventle
Lenke til kommentar

Kjører selv en lignende løsning. Debian maskin med 3 nettverkskort: mot kabelmodem, trådløst nett og kablet nett. Hadde tidligere en dedikert mini-atx PFsense boks til dette, men det ble bortkastede watt for min del. Jeg vil ikke anbefale det til en boks som du vil ha større fleksibilitet på, det er minimalistisk og svært begrenset per filosofi, for å forminske mulige angrepsmuligheter.

 

Jeg synes ikke det er allverdens fy-fy å kjøre tjenester på en brannmur på et hjemmenett, så lenge du stoler på brukerene. I andre, større skala situasjoner er hovedproblemet at du har brukere inne på en maskin som er kritisk for nettverksstrukturen. Er det kun deg selv og familie/venner, så ser jeg ikke det som et stort problem siden du ikke eksponerer tjenestene uttad.

 

Selv tillater jeg kun SSH, da med nøkkelautentisering via en annen server som jeg anser som trygg. Det finnes en rekke måter å sikre SSH tilgang, men med en begrenset brukerbase er det greit å kun tillate innlogging fra eksplisitt definerte brukere (/etc/ssh/sshd_config) med gode passord, men helst med nøkkel. Ikke tillatt SSH-innlogging som root. Google har flere tips til SSH sikkerhet

 

DNS brukes kun til å oversette IP til hostnames (og motsatt), men har ikke noe med routing å gjøre som sådan. Alle portene på nettverkskortet ditt bør, såvidt jeg kan forstå, ikke bruke samme IP, da blir det trøbbel med ARP. En IP per interface i et regulært oppsett, men jeg har ikke noen erfaring med bruk av slike kort og hva slags switchefunksjoner de har.

 

Har ikke satt opp lokal DNS hos meg, men bruker Samba og netbios navn, da jeg stort sett deler filer via SMB/CIFS lokalt, men har også NFS til PXE booting. En mindre tjeneste å administrere. Det eksterne interfacet oppdateres forøvrig med nøkkel til en DNS server et annet sted.

 

Hvis du ikke har linux erfaring kan det være greit å installere OS'et med alle interfacene på plass og sette dem opp i installasjonsprogrammet, men det er også en grei måte å lære det på hvis du gjør det manuelt. :)

 

Du kan ikke rute private adresser på nettet, så det er ikke noe å tenke på.

 

En artig ting å gjøre er å tillate wake-on-lan på lokale maskiner, slik at du utenifra kan skru dem på etter behov via linux maskinen din, men har du all data på serveren er det mest artig ;)

 

I begynnelsen kan det være litt vanskelig å få iptables til å gjøre som du vil, men hold tunga rett i munnen så går det greit. Masse info på nett her også, men det aner meg at du kommer til å kose deg ettersom du har satt i gang dette prosjektet ;)

Lenke til kommentar

Takk for innspill process, jeg har tenkt mye i samme baner som deg. Akkurat nå har jeg Ubuntu Desktop inne og skal få alt til å fungere der før jeg gjør en clean install av ubuntu server.

 

Grunnen til at jeg ville ha samme IP på alle portene var ganske enkelt for at IP til serveren skal være den samme for alle porter, men senere ser jeg at det kanskje kan løses ved å la serveren ha en virtuell port med fast IP, og så rute alle de fysiske portene til denne (er route-tabellen riktig sted å løse disse problemene?).

 

Det første problemet jeg har støtt på er at etter at jeg nå har fått laptopen og serveren til å snakke med hverandre gjennom ett av de ekstra nettverksportene, ved å sette fast IP og gateway på både server og laptop, så forsøker serveren å koble til internett via laptopen, selv om kabelmodemet har en fungerende kobling til en av de andre portene på serveren (denne er satt til dynamisk IP, og har fått tildelt IP av kabelmodemet). Er det noen måte å tvinge serveren til å styre all trafikk som ikke er rettet til de private IP-adressene (192.168.0.xxx) til den porten som er koblet til internet (eth0)?

Lenke til kommentar
Er det noen måte å tvinge serveren til å styre all trafikk som ikke er rettet til de private IP-adressene (192.168.0.xxx) til den porten som er koblet til internet (eth0)?

Som regel løses dette ved å fortelle serveren at default gateway er ISP'en sin ruter (eller kabelmodemet, hvis det har en egen ip adresse).

Lenke til kommentar

eth0 skal settes opp som default route i routing tabellen din. Du må også sette opp maskinen slik at den router i /etc/sysctl.conf, samt passe på at iptables tillater trafikk mellom de aktuelle interface.

 

Selv har jeg ett kort per nett og lar ikke PC'en fungere som switch, dette har jeg en switch til å gjøre.

 

Jeg er ikke sikker på om det finnes noen gode løsninger for å gjøre det slik som du skisserer, men igjen med forbehold om at jeg ikke vet om nettverkskort med flere porter kan settes i en slags switchemodus eller om linux støtter noe slikt. Jeg ville hvertfall ikke satt opp nettet mitt slik.

 

Det lar seg gjøre med ditt oppsett, men det er tungvint og mye jobb. Dersom du VIRKELIG ønsker å eliminere switchen kan du sette opp ett nett med to adresser (eller fler hvis du vil ha en switch) per interface: 192.168.1.0/30, 192.168.1.4/30 etc. (2 adresser per nett, pluss broadcast og nettverksaddresse).

 

Deretter må du sette opp DHCP server per interface som leverer ut IP og korrekt gateway, eventuelt gjøre det statisk som du har gjort hittil.

 

Fordelen er at du har iptables mellom hver maskin og kan sette opp virkelig fleksible brannmursløsninger, men det høres egentlig ut som overkill.

 

Det beste og enkleste er å definere de nettene du vil ha og bruke en switch eller trådløst accesspunkt koblet til hvert interface på maskinen din. Skjønner jo at du vil bruke kjøpt hardware og kanskje ikke har en switch, men routing og switching er i utgangspunktet to forskjellige ting.

Lenke til kommentar

Gikk litt kjapt i svingene her i går, her er min routingtabell som eksempel:

 

 

user@hostname:~$ sudo route
Kernel IP routing table
Destination	 Gateway		 Genmask		 Flags Metric Ref	Use Iface
default		 isp-gateway.no  0.0.0.0		 UG	0	  0		0 eth0
10.0.0.0		*			   255.255.255.0   U	 0	  0		0 eth1
10.0.1.0		*			   255.255.255.0   U	 0	  0		0 eth2
xx.xx.xxx.x	 *			   255.255.xxx.0   U	 0	  0		0 eth0

 

Her routes 10.0.0.0/24 og 10.0.1.0/24 til hhv. eth1 og eth2 og default går ut via ISP'en min sin gateway. ISP ip adresse og default route settes av dhcp fra ISP.

 

eth1 og eth2 har adressene 10.0.0.1 og 10.0.1.1 og disse er default gateway som leveres ut via min DHCP server til klientene på de to nettene. Du kan ikke oppgi ISP sin gateway som default gateway på de interne nettene.

Endret av process
Lenke til kommentar

Takker, da har jeg fått det til å fungere med internettdeling gjennom linuxboksen med statiske nettverksinnstillinger, fra laptopen (som kjører Win7) får jeg både tilgang til internett og logget inn på serveren via SSH.

 

Så tenkte jeg at jeg skulle slå til med dhcp med det samme jeg var i gang, men det gikk ikke helt smertefritt. Laptopen får ikke tildelt IP-adresse, og får heller ikke kontaktet internett. Her er det jeg har gjort:

- Endret nettverksinnstillinger på laptopen til å motta IP-adresse automatisk

- installert dhcp3-server

- lagt inn eth2 (som er nettverksinterfacet laptopen er koblet til) i /etc/default/dhcp3-server:

INTERFACES="eth2"

- konfigurert /etc/dhcp3/dhcpd.conf som følger:

default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "mydomain.org";
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
}

- fjernet gateway-argumentet fra nettverksoppsettet (/etc/network/interfaces) for eth2

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

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

- restartet networking og isc-dhcp-server ett par ganger.

 

Noe jeg har oversett?

Lenke til kommentar

Du må sette alternativene for dhcp serveren innenfor subnet { } blokken. Du må også legge til 'interface eth2;'.

 

Du kan redusere størrelsen på nettene, men for testing vil dette fungere greit :)

 

subnet 192.168.0.0 netmask 255.255.255.0 {

interface eth2;

range 192.168.0.100 192.168.0.200;

default-lease-time 600;

max-lease-time 7200;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.0.255;

option routers 192.168.0.1;

option domain-name-servers 8.8.8.8, 8.8.4.4;

option domain-name "mydomain.org";

}

Endret av process
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...