Trådløst nettverk og VPN

Printerfriendly version

Trådløst
Hovedsiden
Retningslinjer
Nyheter
Dekning og utstyr
Innendørs
Komme i gang
VPN generelt
VPN og Windows
VPN og Windows 98
VPN og Windows XP
VPN og Windows Vista
VPN og Linux
VPN og FreeBSD
VPN og Mac
Oppsett trådløs
Diverse notater
Trafikk statistikk
Generell FAQ
Anti-Virus
Sikkerhet

UiB
UiBs websider
Søk på UiB-web

Nettverket
Ruterne våre
Tegning av det
Det trådløse nettet

UiB oppringt
Om tjenesten.
Spørsmål og svar.
Bruken - ansatt.
Bruken - student.

Trafikk
Linjebelastninger,
Det trådløse nettet

Diverse
NHH
NHH, IT-avd
HiB

 

VPN og Linux

For å ivareta sikkerhet, samt å ha kontroll over det trådløse nettet har vi valgt å satse på VPN (Virtual Private Network) tjenester basert på PPTP (Point to Point Tunneling Protocol) for å ha kontroll med trafikken som går over det trådløse nettet.

Vi har opprettet en maskin som skal være VPN server ved UiB (uib-vpn-gw.uib.no eller bare uib-vpn-gw når du kommer fra det trådløse nettet). Tilsvarende er det opprettet VPN-servere ved NHH (nhh-vpn-gw) og HiB (hib-vpn-gw) Primær oppgaven er å kjøre vpn tunneler til brukere på det trådløse nettet, men det er selvsagt ingenting i veien for å benytte dette for å virtuellt å koble seg til UiB/NHH/HiB fra andre steder på Internet.

Alessio Pace has made a step-by-step HOWTO in english!

Eksempel for Linux:

Eksempelet er laget for UiB, men ved å sette inn informasjon i henhold til tabellen under vil ting fungere mot NHH/HiB.

VPN-server
(Fra trådløs-nettet)
VPN-server
(Fra Internet)
Brukernavn
uib-vpn-gw uib-vpn-gw.uib.no brukernavn@ansatt.uib.no (ansatte)
brukernavn@student.uib.no (studenter)
hib-vpn-gw
hib-vpn-gw.hib.no
brukernavn

Kompiler og innstaller PPTP for Linux
Du kan også hente ferdigkompilerte pakker (må være oppkoblet) fra http://pptpclient.sourceforge.net/download.phtml

From: marius.hjelle@roman.uib.no

Hei

det er tydeligvis en del usikkerhet knyttet til pptp-linux pakken og oppsett på RedHat. Først og fremst skyldes dette ppp-mppe dependency. ' Saturday-night special' løsningen er å ignorere dette enten ved rpm --nodeps eller lignende. Jeg har lenge brukt min hjemmesnekra rpm med ppp-mppe avskrud og det ser ut til å funke sånn passe.

Hei. Jeg syns "VPN og Linux" avdelingen på http://www.wlan.uib.no er ganske knotete. Jeg har laget et startup script som fikser ting litt enklere enn det som er forklart på siden også. Websiden for dette scriptet er http://bronz.mine.nu/~hanscats/VPN/"

Det hadde vært fint om scriptet enten hadde ligget på wlan.uib.no eller at det var en link fra uib sin side til min. Mvh Hans Cats Student UiB


Filen:/etc/ppp/pap-secrets 

# /etc/ppp/pap-secrets ( husk chmod 600;chown root:root)
# Secrets for authentication using PAP
# client        server  secret                  IP addresses
user@rasmus     vpn-gw  hemmelig                *


Filen: PPTP-ON

#########
# PPTP-ON 
#########

#!/bin/bash
# Neste linje er for å slette tidligere tuneller hvis disse ikke
# har blitt avsluttet på en normal måte
/bin/rm -f /var/run/pptp/* 1>/dev/null 2>/dev/null

# Denne linjen kobler opp vpn-tunnellen vha. informasjon fra
# /etc/ppp/pap-secrets
/usr/local/sbin/pptp vpn-gw debug name user@rasmus defaultroute noauth

# PPP versjon opp til 2.3.9 trenger ikke noauth
#/usr/local/sbin/pptp vpn-gw debug name user@rasmus defaultroute 

# Siden det tar et par sekunder for at Linux boksen skal få opprettet
# vpn forbindelsen og lagt til default route, lar vi scriptet henge
# litt før vi gjør tunnellen tilgjengelig.

sleep 10


Filen: PPTP-OFF

##########
# PPTP-OFF
##########

#!/bin/bash
killall pppd
/bin/rm /var/run/pptp/*
killall pppd

Du må selvsagt skifte user@rasmus med ditt brukernavn og rasmus med maskinen du har konto på.


Linker for Linux

http://pptpclient.sourceforge.net

http://www.pdos.lcs.mit.edu/~cananian/Projects/PPTP/


Generellt:

Etter at man har opprettet en VPN tunnel til UiB vil all trafikk inn og ut av maskinen din gå gjennom tunnelen til vpn-gw maskinen på UiB, og så rutes fra den til dit den skal. Svaret vil sendes fra maskinen du snakker med til vpn-gw for så å pakkes inn i tunnelen din, og sendes til deg. For maskinen du "snakker" med på Internet vil du identifiseres som en UiB maskin, med et UiB IP nummer.


Litt mer om PPTP http://www.moretonbay.com/vpn/pptp.html
PPTP er et resultat av et draft fra IETF. PPTP er direkte implementert i Microsofts operativsystemer. Klienter for andre operativsystemer har enten allerede kommet, eller vil antaglig komme etterhvert. Pr i dag kjenner jeg til at det finnes klient for NT/95/98, Linux, Solaris, Digital Unix, OpenBSD og FreeBSD og flere vil etterhvert komme. Dermed føler vi at vi kan satse på dette som en akseptabel løsning.


Bruke Linux som gateway mellom hjemmenett og UiB.

Vi har nå lagt opp til at du kan innstallere Linux direkte over den trådløse linken. Last ned Linux bootdiskett ftp://ftp.uib.no/pub/linux skriv den til en diskett med dd hvis du har en unix maskin tilgjengelig, eller ftp://ftp.uib.no/pub/linux hvis du har en dos maskin. I den maskinen du skal ha Linux på setter du inn ett nettverkskort, og kobler til SA-10 boksen. Så booter du maskinen med bootnet disketten. Velg at du skal bruke dhcp på ethernet kortet, og at du skal innstallere fra vpn-gw via ftp. Så går innstallasjonen... ingen cd eller annet er nødvendig. RedHat ligger her: ftp://ftp.uib.no/pub/linux

Ale filer kan lastes ned uten å opprette vpn forbinnelse først. (da hadde det vært vanskelig å få innstallert) Grunnen til at det går uten vpn er at alle filene ligger på vpn serveren.

Sånn, nå har du (forhåpentligvis) en maskin med Linux operativ system...
Så nå er det bare å gå i gang å få opp pptp.....

Hvis du vil ha flere maskiner på nett er det bare å putte inn et nettkort til i Linux burken. Legge til begge kortene i /etc/lilo.conf og boote.

Det nettkortet som skal være lokalnett gir du lokalnett-ip f.eks 192.168.1.1/255.255.255.0 og de andre pcene gir du gateway 192.168.1.1 Du kan jo fyre opp en dhcp server på linuxen, så trenger du ikke å konfigurere de andre pcene i det hele tatt :-) Fyr opp en liten dns server med et eller annet fiktivt domene (hjemme.no eller noe), og som cache servere setter du opp 129.177.30.3 og 129.177.12.31 så funker dns gjennom løsningen din oxo.... NB! Det er ekstremt viktig at DHCP-serveren konfigureres til å kun svare på forespørsler som kommer fra det interne nettet. Ellers begynner den å svare på forespørsler som kommer fra andre trådløs-klienter. Dette har allerede skapt problemer på trådløs-nettet.

Så legger du til disse to linjene i /etc/rc.d/rc.local

/sbin/ipchains -A forward -i ppp0 -j MASQ
/sbin/modprobe ip_masq_ftp

skift ut ppp0 med det interfacet som er mot vpn-tunnelen altså 129.177.44.x interfacet.

linje to må til for å få helt fleksible ftp overføringer, som går både på port 20 og 21....

Sånn nå vil all 192.168.1.x trafikk bli omaddressert som 129.177.44.x når det går ut over vpn tunnelen, og svarene som kommer tilbake omadressert tilbake... Ergo kommer alle maskinene på nett via linux burken, og i motsettning til proxy løsninger er dette helt transparent for pcene, det fungerer som om alle har link....

NB husk at den som kobler opp vpn forbinnelsen står som ansvarlig for all trafikk som går ut via forbinnelsen, og ved ulovligheter er det den brukeren som i ekstreme tilfeller vil miste kontoen, og få onkel på besøk. Det var moralprekenen.... liker ikke den, men det bør poengteres, for det har vist seg at ikke alle har reflektert over det....


Eksempler på filer.

# /etc/dhcpd.conf

# Configuration file for ISC dhcpd


server-identifier server.hjemme.no;
option domain-name "hjemme.no";    
option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
default-lease-time 720000;
max-lease-time 7200000;
option netbios-node-type 2;


shared-network HJEMMENETT {

  subnet 192.168.1.0 netmask 255.255.255.0 {  
        range 192.168.1.10 192.168.1.249;
        option domain-name "hjemme.no";    
        option domain-name-servers 192.168.1.1;
        option broadcast-address 192.168.1.255;
        option routers 192.168.1.1;    
  }
}

########

server:/# cat /etc/named.conf 

options {
        directory "/local/named";       // running directory for named
        check-names master warn;                /* default. */
        named-xfer "/usr/sbin/named-xfer";
        pid-file "/local/named/log/named.pid";
        multiple-cnames yes;
};

zone "." {
        type hint;
        file "pz/cache";
};


zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "pz/0.0.127.IN-ADDR.ARPA";
};

zone "1.168.192.IN-ADDR.ARPA" {
        type master;
        file "pz/1.168.192.IN-ADDR.ARPA";
};

zone "hjemme.no" {
        type master;
        file "pz/hjemme.no";
};

#########

server:~# cat /local/named/pz/cache 

$ORIGIN .
.               999999  IN      NS      A.ROOT-SERVERS.NET.
;                999999  IN      NS      B.ROOT-SERVERS.NET.
;
A.ROOT-SERVERS.NET.     999999  IN      A       10.1.1.1
;B.ROOT-SERVERS.NET.     999999  IN      A       129.177.30.3

#########

server:~# cat /local/named/pz/0.0.127.IN-ADDR.ARPA 

0.0.127.in-addr.arpa. IN SOA hjemme.no postmaster.hjemme.no. (
         1999081601
         10800
         3600
         3600000
         86400 )

; NAMESERVERE

0.0.127.in-addr.arpa.           IN NS  server.hjemme.no.


; MASKINER

localhost                       IN A 127.0.0.1  
1.0.0.127.in-addr.arpa.         IN PTR localhost


##########

server:~# cat /local/named/pz/1.168.192.IN-ADDR.ARPA 

$ORIGIN 1.168.192.IN-ADDR.ARPA. 
@       SOA     server.hjemme.no. server.hjemme.no. (
                1999090201
                10800
                3600
                3600000
                86400 )
;
; NAMESERVERE
                NS      server.hjemme.no.
;
; MASKINER
;
1               PTR     server.hjemme.no.
10		PTR	dhcp-maskin-1.hjemme.no.

##########

server:~# cat /local/named/pz/hjemme.no 

$ORIGIN hjemme.no.      
@       SOA     server.hjemme.no. postmaster.hjemme.no. (
        1999090202
        10800
        3600
        604800
        86400 )

; NAMESERVERE
                        NS      server

localhost               A       127.0.0.1  
server                  A       192.168.1.1
;
gateway			CNAME   server
;
dhcp-maskin-1		A	192.168.1.10




Det scriptet som er lagt opp for Linux, virker kun for brukere av RH7x. For 
oss andre er det ufullstendig, siden pptp ikke setter opp riktig default 
route. Her er et mer komplett script for adsl brukere:


Filen:/etc/ppp/pap-secrets 

# /etc/ppp/pap-secrets ( husk chmod 600;chown root:root)
# Secrets for authentication using PAP
# client                             server             secret                 
IP addresses
stxxxxx@student        10.31.1.1                hemmelig                *


Filen: PPTP-ON

#########
# PPTP-ON 
#########

#!/bin/bash
# Neste linje er for å slette tidligere tuneller hvis disse ikke
# har blitt avsluttet på en normal måte
/bin/rm -f /var/run/pptp/* 1>/dev/null 2>/dev/null

# Denne linjen kobler opp vpn-tunnellen vha. informasjon fra
# /etc/ppp/pap-secrets
/usr/sbin/pptp 10.31.1.1 debug name stxxxxx@student mtu 1400 defaultroute 
noaut$

# PPP versjon opp til 2.3.9 trenger ikke noauth
#/usr/local/sbin/pptp vpn-gw debug name user@student defaultroute

# Siden det tar et par sekunder for at Linux boksen skal få opprettet
# vpn forbindelsen og lagt til default route, lar vi scriptet henge
# litt før vi gjør tunnellen tilgjengelig.

sleep 5

# Vi vil nå sette opp default route til gateway
route add -host 10.31.1.1 gw 10.24.19.73 dev eth0
route add -net 217.13.0.0/16 gw 10.24.19.73 dev eth0
route del default
route add default dev ppp0

Filen: PPTP-OFF

##########
# PPTP-OFF
##########

#!/bin/bash
killall pppd
/bin/rm /var/run/pptp/*
killall -9 pppd #Så er vi sikker på at den går ned

/etc/init.d/net.eth0 restart # for å få igjen ruter og slikt





Interesante linker:

http://www.microsoft.com/ntserver/commserv/deployment/moreinfo/pptpfaq.asp
ftp://ftp.ietf.org/rfc/rfc2637.txt