Sette opp en Ubuntu DNS-server på et lokalt netverk

April 29th, 2012

Eg har i lang tid slitt med trådlause routerar som ikkje tåler belastninga i nettverket mitt, og har byta router utallege gonger. For ei tid sida fann eg ut at det ikkje er trådlausfunksjonen i routerane som ikkje taklar belastninga, derimot er det ofte routerfunksjonen som knelar under press. Etter at eg satte opp Ubuntu tenaren som router, og kun nyttar trådlausrouteren som eit aksesspunkt, har eg ikkje hatt nemneverdige problem. Eit innlegg om korleis du får ein Ubuntu-tenar til å fungere som router kommer kanskje seinare.

Eg kjem til å leggje disse opplysningane til grunn, juster for å tilpasse til ditt nettverk:
Ubuntu 12.04 tenar med to nettverkskort:

eth0: Kobla til kabelmodem, mottek IP-adresse automatisk
eth1: IP: 10.0.0.1 Nettmakse: 255.255.255.0 (det samma som 10.0.0.1/24)

Ubuntu tenaren er satt opp som “default gateway” i nettverket, og fungerer òg som DHCP-tenar. Planen er at DNS-tenaren i tillegg til å svare på forespørningar om domenenamn på internett, òg skal svare på lokale hostnamn. For å få til det er det naudsynt å oppdatere DNS-tenaren med dynamiske opplysningar frå DCHP-tenaren.

Vi starter me då sette opp BIND som ein caching server, samt master for det lokale domenet. BIND vil då hugse alle forespørningar frå LAN-et og påfølgjane spørjingar går raskare.
Rediger /etc/bind/named.conf.local:
sudo nano -w /etc/bind/named.conf.local

# Lokalt domene
zone "noteng.lan." {
type master;
file "/etc/bind/zones/noteng.lan.db";
};

# For revers DNS
zone "0.0.10.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.0.0.10.in-addr.arpa";
};

Dersom du ynskjer å nytte din ISP sin nametjenar for oppslag må du legge til ein eller fleire forwarders i fila /etc/bind/named.conf.options. Om du ikkje legg til forwarders, vil BIND nytte rot-tenarane til oppslag. Å nytte rot-tenarane tek litt lenger tid, men då er du sikker på at ikkje nettleverandøren din har lagt inn eigne oppføringar.
sudo nano -w /etc/bind/named.conf.options

forwarders {
8.8.8.8; 8.8.4.4
};

8.8.8.8, og 8.8.4.4 er Google sine namnetjenarar, dei kan òg nyttast om du ikkje er redd for at Google veit kva nettsider du vitjer.

No er det på tide å sette opp Ubuntu-tenaren til å nytte seg sjølv til namneoppslag, i staden for namnetenaren den har fått oppgitt av DHCP på eth0:
sudo nano -w /etc/dhcp/dhclient.conf

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name "<hostname>";
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
supersede domain-name "noteng.lan";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers,
dhcp6.domain-search, dhcp6.fqdn,
dhcp6.name-servers, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;
#timeout 60;
#retry 60;

No er det på tide å sette opp sonefilene:
sudo mkdir  /etc/bind/zones
sudo nano -w /etc/bind/zones/noteng.lan.db

$TTL 1D
@ IN SOA ns.noteng.lan. andreas.noteng.no. (
2012042901
1d
2h
4w
1h
);
noteng.lan.    NS      ns
legoknekt       CNAME   ns
ns                    IN      A          10.0.0.1

sudo nano -w /etc/bind/zones/rev.0.0.10.in-addr.arpa

$TTL 3D
@       IN      SOA     ns.noteng.lan. andreas.noteng.no. (
2012042901
3h
15
1w
3h
)
IN      NS      ns.noteng.lan.
1       IN      PTR     ns.noteng.lan.
1       IN      PTR     legoknekt.noteng.lan.

For ei forklaring på korleis sonefilene fungerer kan du ta ein titt på Wikipedia sin side om sonefilar: http://en.wikipedia.org/wiki/Zone_file

No gjenstår berre å sette åpp DHCP-tenaren til å be alle klientane nytte Ubuntu-tenaren som DNS-tenar:
sudo nano -w /etc/dhcp/dhcpd.conf

subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.2 10.0.0.200;
option domain-name-servers 10.0.0.1, 8.8.8.8;
option domain-name "noteng.lan";
option routers 10.0.0.1;
option broadcast-address 10.0.0.255;
default-lease-time 600;
max-lease-time 7200;
}

Subnet-definisjonen over er eit døme på eit fungerande LAN, tilpass etter det som passar ditt nettverk.
No er det på tide å ta i bruk dei nye instillingane:
sudo ifdown eth0 && sudo ifup eth0
sudo /etc/init.d/bind9 restart
sudo /etc/init.d/isc-dhcp-server restart

No kan du undersøke om alt fungerte ved å sjekke loggen:
cat /var/log/syslog

Det som no gjenstår er å få dhcp-tenaren til å automatisk oppdatere sonefila til BIND med nye adresser etterkvart som nye klientar koplar seg på nettverket.

Først må vi lage ein nøkkel for sikker kommunikasjon:
dnssec-keygen -a hmac-md5 -b 128 -n USER dhcpupdate
Kommandoen over produserer to filer, sjå i den som slutar på .key og kopier nøkkelen (den siste strengen).
Deretter redigerar du /etc/bind/named.conf.options og legger til følgjande i sluten av fila:

key dhcpupdate {
algorithm hmac-md5;
secret "HEMMELIGNØKKEL==";
};

Sett sjølvsagt inn nøkkelen du laga over.
Deretter må vi redigere innstillingane for sonane:
sudo nano -w /etc/bind/named.conf.local

# Lokalt domene
zone "noteng.lan." {
type master;
file "/etc/bind/zones/noteng.lan.db";
allow-update { key dhcpupdate; };
};

# For revers DNS
zone "0.0.10.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.0.0.10.in-addr.arpa";
allow-update { key dhcpupdate; };
};

No har vi satt opp BIND til å motta DDNS-updates, men vi må òg sette opp DHCP-tenaren til å sende dei:
sudo nano -w /etc/dhcp/dhcpd.conf

ddns-update-style interim;
key dhcpupdate {
algorithm hmac-md5;
secret "DINHEMMELEGENØKKEL";
};
zone noteng.lan. {
primary 127.0.0.1;
key dhcpupdate;
}

zone 0.0.10.in-addr.arpa. {
primary 127.0.0.1;
key dhcpupdate;
}

Lagre og restart tenestene:
sudo /etc/init.d/isc-dhcp-server restart && sudo /etc/init.d/bind9 restart

Se etter eventuelle feilmeildinger i syslog:
cat /var/log/syslog

Om du plages med at BIND (named) spammer syslog med at den ikke finne IPv6 rot-tenarane kan du slå av IPv6 ved å legge til -4 i OPTIONS i /etc/default/bind9
Truleg må du legge til følgjande i apparmor-profilen til BIND:
sudo nano -w /etc/apparmor.d/usr.sbin.named

/etc/bind/zones/* rw,

samt gje BIND tillating til å skriva til /etc/bind/zones

sudo chmod g+w /etc/bind/zones && sudo chown :bind /etc/bind/zones

2. desember – Nøgne Ø #500

December 2nd, 2011

Denne hadde jeg på forhånd hørt gjetord om, og forventningene, og dermed fallhøyden, var stor.

Forventningene ble så til de grader innfridd! Dette er kongen av ekstremhumla øl, akkurat slik jeg liker det. Har var det masse, kanskje alt for mye, av både bitter-, smaks- og aromahumle. Det var NESTEN, men bare nesten for mye bitterhumle, her var jeg i himmelen. Håper superkone har puttet flere slike i kalenderen. Hadde denne hatt et lite snev mindre bitterhumle, skulle den på en skala fra 1-6, fått 12. Terningkast 6.

1. desember – Ægir nattporter

December 2nd, 2011

Denne gledet jeg meg veldig til å smake, er jo fra før av en stor porterfan, men denne fikke jeg ikke helt taket på. Bryggeriet skriver jo selv at den er spesiell, og inneholder mye kaffe- og sjokolademalt. Jeg kan så absolutt bekrefte det med kaffe- og ajokolademalten. I tillegg syntes jeg at jeg kjente noe havre, mulig jeg tar feil, men godt var det i alle fall ikke. Alkoholinnholdet i denne ble også alt for høyt, det finnes øl som tåler 10% og til og med mer, men denne er ikke blant de! Terningkast 3.

 

 

 

 

 

 

 

 

 

 

 

 

.

SSH-tunell som et alternativ til VPN

May 30th, 2011

Tenk deg at du har et nettverk som kjører diverse tjenester, som du av og til trenger å koble til utenifra. Her er vanlige løsninger å enten slå på port forwarding i routeren eller å benytte VPN. Å direkte tilgjengeliggjøre en maskin på nettet er en potensiell sikkerhetsrisiko, og i mitt tilfelle trengte jeg tilgang til remote desktop på en windows 2008 server, definitivt ikke ei maskin jeg ønsker å gjøre tilgjengelig på internett. Routeren på det aktuelle nettverket var en Cisco VPN-router beregnet på små og mellomstore bedrifter, så i utgangspunktet var planen klar: VPN. Problemet ble imidlertid at Cisco’s VPN-protokoll er proprietær, og man er avhengig av Ciscos klient, QuickVPN. Denne fungerer for det første kun i Windows, og for det andre kun på omtrent 50% av nettverkene jeg prøvde den fra, jeg fant aldri noen sammenheng mellom nettverkene som feilet. Etter mye prøving og feiling i lange tider ble det til slutt at jeg som en nødløsning åpnet port 3389, og forwardet denne til 2008-serveren. Risikosport…

Men, så en slo det meg, hvorfor ikke sette opp en ssh-tunell ved behov, effekten blir den samme som med VPN, man slipper gjennom brannmurer, og all trafikk ute på nettet er kryptert. Etter noe googling fant jeg ut at det finnes OpenSSH implementasjoner for windows, bl.a. vha. Cygwin. Jeg fikk SSH tjenesten opp å gå, men slet veldig både med autentifisering og å få tunellene til å fungere.

Løsningen ble til slutt å finne en gammel rask-pc, installere Ubuntu server, og voila! Så fungerte det. Jeg hadde ingen tilgjengelig skjerm som gikk overens med skjermkortet i den gamle pc-en, så installasjonen ble faktisk gjort i blinde. Jeg installerte paralellt i en VM, så jeg så hvordan skjermbildet så ut, trykte i blinde, og håpte på det beste. Så fort Ubuntu-serveren var oppe og gikk, var det bare å sette opp ssh-tuneller i hytt og pine, alt fungerer knirkefritt! Ingen konfigurasjon er nødvendig på Ubuntu-serveren, du trenger bare å sørge for at pakken ssh er installert, så er du i gang.

På klientene er løsningen litt forskjellig, avhengig av OS. De som benytter dette nettverket til daglig er alle windowsbrukere, jeg opprettet derfor en tunnelier profil til hver av dem, og sendte dem den i en mail, sammen med en lenke til installasjonsfilen for tunnelier. Tunnelier viste seg å være en ganske genial GUI-applikasjon for terminal-, filoverførings- og tunelltjenester. Du kan til og med legge inn separate innstillinger for remote desktop server.

På linux har f.eks. Remmina remote desktop client innebygget støtte for å opprette ssh tuneller. Du kan også lage nøyaktig den tunellen du trenger med ssh kommandoen.

ssh brukernavn@server.dyndns.org -C -L 3389:192.168.1.2:3389

Kommandoen over lager en tunell fra localhost:3389 til 192.168.1.2:3389 i nettverket som ssh-serveren på server.dyndns.org befinner seg i. Bryteren -C er for å skru på komprimering, noe som forbedrer overføringshastigheten om du ikke har ubegrenset båndbredde.

Deleing av hjemmemappe mellom flere linuxdistrubisjoner

January 2nd, 2011

Jeg har akkurat lagt inn Debian unstable som OS nr. 2, og ønsket å beholde en del instillinger fra Ubuntu.

Løsningen under fungerer med Linux, men bør fungere med de fleste unix-lignende operativsystem. Som alltid: TA BACKUP FØRST

Løsningen ble å ha /home på en egen partisjon, men å bruke samme hjemmemappe tror jeg ville vært i overkant risikabelt. Derfor har jeg kommet fram til følgende løsning:

Sørg for at brukeren din i det nye operativsystet har UID som i det gamle (UID starter som oftest på 1000 for ordinære brukere), men pass på at ikke brukernavnene er like. Du vil nå ha 2 mapper i  /home;  /home/bruker1 og  /home/bruker2. Fordi begge brukerene har samme UID vil du ikke få problemer med tilgangskontroll. I os1 vil begge mappene være eid av bruker1 og i os2 vil begge brukerne være eid av bruker2.

Om minst en av hjemmemappene er krypterte (slik de ofte er i Ubuntu) må du kopiere data som skal deles over i en ukryptert mappe:
Opprett nå en tredje mappe i  /home (eks: /home/felles), hvor du kopierer alt du ønsker å dele, i mitt tilfelle ble det bl.a. mappene ~/Downloads ~/Documents ~/.mozilla ~/.thunderbird ~/.ssh ~/.gnupg etc. Pass på at alle rettigheter holder seg intakte (ved å bruke -p) og at kommandoen er rekursiv (-r)

eks:
bruker1@os1:~$ sudo cp -rp ~/.mozilla ../felles/

Lag så symlinker fra hjemmemappe i os2 til fellesmappa:
bruker2@os2:~$ ln -s ../felles/Documents ~/Documents

Fortsett slik med alle mappene du ønsker å dele. Merk at i eksemplene over har jeg bootet inn i det nye operativsystemet og logget inn som den nye brukeren. Dersom du ikke gjør det, så pass på å bytte ut ~/ med den fulle banen; for eksempel  /home/bruker2.

Når du ser at dette fungerer; kan du gjøre det samme fra os1:

bruker1@os1:~$ rm -rf Documents
bruker1@os1:~$ ln -s ../felles/Documents ~/Documents
ETC.

Dersom ingen av hjemmemappene er krypterte (slik de var i mitt tilfelle); kan du hoppe over kopiering til en tredje mappe og bare linke direkte:

bruker2@os2:~$ rm -rf ~/Documents
bruker2@os2:~$ ln -s ../bruker1/Documents ~./Documents

DamnVid, a video downloader/converter that sucks less

June 2nd, 2010

De siste ukene har jeg brukt mye tid på å pakke DamnVid for Ubuntu. DamnVid er et program skrevet i Python som laster ned og konverterer det meste av online video. Programmet fungerer aller best med YouTube, men kan brukes mot mange andre video-nettsteder. Damnvid kan også konvertere videoer du har på liggende på PCen. Du kan også velge å for eksempel fjerne video, og bare lagre ei lydfil av en musikkvideo på youtube. “There’s no end to the possibilities”, som Jim Carrey sa en gang.

Siden DamnVid er skrevet i Python kan det kjøres på mange plattformer; på programmets nettsider ligger installasjonsfiler for Windows og Mac. Har du Ubuntu Lucid Lynx (9.10) eller Ubuntu Karmic Koala (10.04) kan du enkelt installere programmet med apt:

$ sudo apt-add-repository ppa:damnvid/ppa
$ sudo apt-get update
$ sudo apt-get install damnvid

Så enkelt kan det gjøres, programmet skal nå ligge i Applications/Sound & video (eller tilsvarende på norsk om du er av typen som foretrekker programvare på morsmålet).

Det er mulig pakkene fungerer på Debian og eldre utgaver av Ubuntu, men da må du i såfall hente pakkene manuellt herfra: https://launchpad.net/~damnvid/+archive/ppa/+packages

I tillegg til å pakke DamnVid for Ubuntu har jeg også oversatt det til norsk. For å få DamnVid på norsk starter du programmet, velger menyen DamnVid, deretter Preferences. Deretter endrer du valget Language til: Norsk. Damnvid må nå startes på nytt for at endringene skal tre i kraft.

Ta kontakt når du finner tastefeil, dem er det sikkert noen av…

Huawei E1752

May 25th, 2010

Jeg har nettopp mottatt nytt modem for mobilt bredbånd fra Netcom. Det fungerer ikke helt automagisk i Ubuntu Lucid Lynx LTS (10.04), men nesten:

Det nye modemet funger som kombi lagringsmedium og modem, for å få til å bruke det som modem må du endre modus. Dette gjøres ved hjelp av programmet usb-modeswitch:

$ sudo apt-get install usb-modeswitch

Så er du klar. Plugg i modemet og koble til med network manager.

Landevegsrøveri eller fornuftig miljøpolitikk?

April 30th, 2010

Det er mykje misnøye for tida, mange roper høgt, gret og bær seg. Skal det ingen ende ta på dette ranet av bilistane? Betaler vi ikkje vegavgift i dyre dommar, og har vi ikkje den høgste bensinprisen i verda? Kvifor skal vi finne oss i å betale bompengar kvar dag på veg til jobb? Er det ikkje staten si oppgåve å byggje nødvendige vegar? Kvifor skal bilistane betale for vegane når vi bur i eit av dei rikaste landa i verda?

Desse, og liknande argument høyrer eg kvar dag, og eg må ta meg saman for å ikkje skrike ut: «Din jævla egoist!». Read the rest of this entry »

Mopeden min er frisk!

April 20th, 2010

Da er jeg endelig fornøyd med mopeden. Den har gått som ei klokke i hele vinter, og startet selv i 25 minus. Det eneste problemet jeg har hatt er at el-starten ikke virker i minusgrader.

Men, når våren kom og det begynte å bli vått ute fikk jeg problemer. Mopeden nektet å kjøre så lenge veiene var våte. Til å begynne med trodde jeg det var kondensproblemer og prøvde uten hell med kondensfjerner. Deretter oppdaget jeg at luftfilteret ennå ikke var helt tett etter at Tores eftf. ødela det i høst. Jeg klinte inn med noe som heter tacky tape (minner litt om skoletyggis) hele veien rundt i stedet for pakning. Nå ble den litt bedre, men jeg kunne fremdeles ikke kjøre til skolen i regnvær uten at den stoppet før jeg var fremme.

Løsningen viste seg å være å utvide åpningen på luftinntaket. Jeg har jo tidliger vært nøtt til å strupe inn luftinntaket da det ikke finnes noen annen måte å justere blandingen i gasseren på. Resonerte meg frem til at jeg antagelig har stupet så mye at den akkurat har gått rent, men når det ble mye fukt i lufta fikk ikke motoren nok oksygen fordi lufta inneholdt en del vann. Jeg åpnet litt på innstrupingen og oljet inn luftfilteret og nå går mopeden som en drøm. Faktisk har den aldri gått så bra før, greier 55 i slake oppoverbakker nå!

Ubuntu 10.04 LTS (Lucid Lynx)

April 9th, 2010

Vote for Launchpad to add usage statistics.
Bloggurat
Bloggurat
Twitter: anoteng

BalleClorins geekblog is using WP-Gravatar