Ubiquiti trådlöst spridningsnät i glesbygd

I September var jag uppe i Norrland och installerade bynät.
Valet föll på Ubiquiti airmax länkar p.g.a. svåra markförhållanden (ägarfrågor, avstånd & kostnadsbild).
Kostnaden för mast-installationen är ungefär samma som vad ett hushålls fiberdragning hade kostat om man anlitar en professionell fiberinstallatör.
Byn förses ändå med radiolänk från kommunen så fiberdragningen hade ändå bara varit lokal.
 
Med 5G nätverk runt hörnen så är det en fråga hur mycket krut man ska lägga ned, något man får ta ställning till då när Telia räknar med att glesbyggden ska få tillgång till det (2025) och då kanske airmax också ska uppgraderas. 5G nätverk är tänkt att ge vanliga konsumenter upp till 100Mbit/s bredband via telefonen fast man säger samtidigt att fiber och alternativa anslutningar är bra alternativ. Så jag antar att de själva ser 5G som ett komplement.
Tills dess finns det ju ändå inget som stoppar individuella hushåll att gräva ned fiber till byns internetknytpunkt om möjligheten finns.
Kapaciteten i nätet är byggt så att hushåll ska kunna garanteras minst 100Mbit/s i båda riktningar vid normala radioförhållanden även när andra nyttjar bandbredd, men om behovet finns kan man få upp till 330Mbit/s upp eller ned, eller 165Mbit/s i båda riktningar.
4 sektor antenner sprider 90 grader i var sin riktning (dvs 360).
Resultatet hittills är 6 hushåll uppkopplade via airmax trådlösa länkar. 2st företag samt att minst 3 hushåll till ska kopplas upp. Byns internetuppfart mot kommunen skrämdes dessutom upp i dubbla hastigheten.
Våra egna mätningar visade att den gamla länken presterar som mest 25Mbit/s (totalt) medan den kommunlänken vi satte upp i mast klarar upp till 100Mbit/s. Det är något som man kan öka till 450Mbit/s om kommunen använder den nya generationens utrustning.
I  takt med att fler får upp ögonen för bredbandet så vill fler ansluta och då kommer behovet att finnas. Ska bli spännande att se hur det utvecklar sig.
Väder och vind är ett problem som kan ställa till det. Hård kyla och massor med snö/is på vinter, åska och regn på sommar. Heta soliga dagar med mera.
Men Ubiquiti har god renommé  samt har byggt sina grejer för att klara detta.
Kanske ökar behovet av bredband så att man sätter press på kommunen att uppgradera radiolänkarna som förser byn med uppfarten. De är trots allt 2 generationer äldre än det vi installerade för byns hushåll.

DKIM och SPF record

Adminor erbjuder SPF record.
För vår server Smallfoot gäller följande SPF record:

”v=spf1 mx ip4:46.253.202.12/32 ip4:46.253.202.13/32 ip4:46.253.205.58/32 -all”

För DKIM kontakta oss så kan vi slå igång det.

DKIM och SPF används för att identifiera att avsändarserver har rätt att skicka mail. På så vis minskar man risken för att klassa mail felaktigt som SPAM. Korrekt uppsatta SPF/DKM record är därför viktigt för att undvika problem med utskick av mail.

Let’s encrypt for varnish?

Do you have a site that’s accelerated with varnish but noticed that there is no native SSL support for Varnish?

No problems!
You can use a bunch of different methods to terminate SSL .
In this post I’m not going to be posting a bunch of configuration or setup steps. But discuss the caveats of terminating SSL .

Let’s say you are using drupal or wordpress.
Your current setup probably looks something like this:

varnish –> apache OR nginx backend -> application (wordpress/drupal) .

With Let’s encrypt you’re going to want to setup an SSL terminator. In the past I’ve recommended using ”pound” as an SSL terminator, but due to the slow development cycles I’ve moved towards nginx or haproxy.

Of the two I’d setup nginx SSL terminator in most cases as the Let’s encrypt certbot supports nginx natively for issuing and renewing SSL certificates.

Haproxy is awesome if you plan to use multiple backends or caches. If you use haproxy you probably know what you are doing but the problem with Let’s encrypt is that you have to run certbot in standalone mode with the ”certonly” variable on the commandline .

Haproxy will be configured to pass the acme-challenge to the standalone daemon that certbot launches. The renewal process will also use the forwarded requests .

With nginx it’s as simple as just creating the cert using certbot and configuring SSL proxy onwards to varnish.

We assume that you have previously managed to configure apache mod_rpaf , mod_remoteip or nginx to handle x-forwarded-for to provide the right IP to the web application.

One big issue that we’ve seen on customer installations when adding let’s encrypt support to already running setups is the fact that the backend application has no clue about https protocol. This sometimes causes forwarding loops or problems with loading http:// resources over a https:// connection (modern webrowsers raises alerts and refuses to load resources outside the https:// connection if it’s properly configured).

It’s important that the x-forwarded-for and protocol is passed on in all steps of the chain.

With haproxy you use option forwardfor and x-forwarded-proto.
Nginx needs to do the same.

On the backend side you can force SSL in a number of different ways.
The easiest way in php is to force https. Drupal and WordPress have a number of plugins to do so, you can also edit the php config files to force SSL.

For example in wp-config.php :
define(‘FORCE_SSL_ADMIN’, true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false)
$_SERVER[‘HTTPS’]=’on’;

Do you need help to add SSL and let’s encrypt for your current varnish setups? Feel free to contact us 

Adminor also offers ready-made VM images with Let’s encrypt varnish proxies for our VPS customers.

Supersnabb WordPress installation på Adminor SSDVPS

Det första du behöver är en SSDVPS från Adminor (även om det går bra med andra leverantörer också så rekommenderar vi våra tjänster)

SSDVPS:en ska köra Ubuntu 14.04 LTS för att denna guide ska vara kompatibelt.
Vi kommer använda oss utav Zach Adams guide för att installera en miljö med följande komponenter:

Percona DB (MySQL) (Looking for MariaDB? Try this)
HHVM (Default PHP Parser)
PHP-FPM (Backup PHP Parser)
Nginx
Varnish (Running by default)
Memcached and APC
Clean WordPress Install (Latest Version)
WP-CLI

 

Installation

  1. SSH:a till din nyligen skapade server, lägg till nödväntiga apt paket om dessa redan inte är installerade:
    sudo apt-get install software-properties-common
  2. Lägg till Ansible med sudo add-apt-repository ppa:ansible/ansible
  3. Uppdatera Apt med sudo apt-get update && sudo apt-get upgrade
  4. Installera Git oc Ansible med sudo apt-get install ansible git
  5. Klona detta repository med git clone https://github.com/zach-adams/hgv-deploy-full/
  6. Flytta in till  cd hgv-deploy-full
  7. Editera hosts filen och ändra yourhostname.com till ditt eget hostname. Om du har fler siter på denna server så lägg till varje domän på en ny rad.
  8. Editera yourhostname.com filen in host_vars katalogen till ditt eget hostname. Om du vill installera fler siter på denna server så ska du kopiera den nuvarande och byta namn på den till den andra sitens domän .
  9. Ändra site specifik information inklusive lösenord innuti hostname filen i host_vars katalogen
  10. Kör Ansible med sudo ansible-playbook -i hosts playbook.yml -c local. Får du några fel så kontakta oss så kanske vi kan hjälpa till.
  11. Ta bort den klonade git katalogen från din server med rm -rf hgv-deploy-full/
  12. Kör /usr/bin/mysql_secure_installation för att installera MySQL och säkra det. Ditt root-lösenord är tomt från början.
  13. Starta om Varnish och Nginx med: sudo service varnish restart && sudo service nginx restart
  14. Du bör nu vara klar! En ny WordPress installation som kör HHVM och Varnish bör nu vara klar i hostname/s!

 

Hur man installerar en Ny Site / Hostname

Dessa steg funkar bara om du installerat med metoden ovan. Ta alltid en backup på din server innan du gör ändringar!

  1. Ta en backup
  2. Följ steg 1-6 ovan
  3. När du kommer till din hosts fil följ samma steg MEN dinkludera inga tidigare installationer av WordPress eller hostnames, bara de nya du vill installera.
  4. Upprepa detta för din host_var katalog
  5. Följ steg  9-12 och får du några problem så kan du kontakta oss så kanske vi kan hjälpa till.

Hur man stänger av Varnish (använd bara Nginx)

Om du får problem att ändra eller får problem med backend när du använder Varnish så kan du stänga av det och bara använda Nginx. Du bör fortfarande få relativt god prestanda. Så här gör du det:

  1. Öppna varje konfiguration i Nginx för siter du har installerat på din server med kommandot: sudo nano /etc/nginx/sites-available/your-hostname.com
  2. Ändra listen = 8080; till listen = 80;
  3. Gör detta för alla siter som är installerade på servern
  4. Stoppa Varnish och Starta om Nginx med sudo service varnish stop && sudo service nginx restart
  5. Du bör nu vara klar! Har du ingen cache plugin för wordpress installerat så rekommenderar vi att du skaffar en.

Växla från HHVM tillbaka till PHP-FPM

Din Nginx konfiguration bör växla automatiskt till PHP-FPM om det uppstår problem med HHVM, du kan däremot växla manuellt om du behöver göra det:

  1. Öppna din Nginx konfigurationsfil med  vim|emacs|nano /etc/nginx/sites-available/( Your Hostname )
  2. Ändra följande sektion i slutet av filen:
    location ~ \.php$ {
        proxy_intercept_errors on;
        error_page 500 501 502 503 = @fallback;
        fastcgi_buffers 8 256k;
        fastcgi_buffer_size 128k;
        fastcgi_intercept_errors on;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass hhvm;
    }
  1. Ändra fastcgi_pass hhvm; till fastcgi_pass php;
  2. Starta om Nginx med sudo service nginx restart
  3. Du bör nu köra PHP-FPM! Kontrollera med phpinfo(); i en php fil

Vill du att vi installerar åt dig så erbjuder vi konfigurationstjänst. Kontakta oss på support@adminor.net för offert!

 

Säkra upp vCenter 5.5 från att delta i NTP DDOS attacker

Hej!

På förekommen anledning vill vi påminna kunder som använder VMWare med vCenter att säkra upp sina installationer.

vCenter 5.5 har detta problem av någon anledning när äldre vCenter 5.1 och 5.0 inte har det.
För att säkra upp vCenter, aktivera SSH på vCenter appliancen (borde vara igång per default).
Logga in med ssh och root-användaren.

Följ dessa steg:

  1. vi /etc/ntp.conf
  2. Flytta kursören med piltangenterna till raden som innehåller “driftfile /var/lib/ntp/drift/ntp.drift”
  3. Tryck ‘i’  för att gå in i redigeringsläge med vi.
  4. Skriv “disable monitor” följt av Enterknapp.
  5. Tryck ‘ESC’ för att gå ur redigeringsläge.
  6. Skriv ‘:wq’ för att spara filen och avsluta vi.
  7. I kommandoraden skriv ’service ntp restart’ för att starta om ntp-tjänsten.

Klart!

OpenVZ IPv6 tunnelbroker HE setup

Adminor provides native IPv6, but if you’d like to setup an IPv6 tunnel you can still do so.

Crossposted from http://www.cybermilitia.net/2013/07/22/ipv6-tunnel-on-openvz/

You can get IPv6 connectivity using a tunnel, if you don’t have native IPv6 support.
Doing this is pretty straightforward if you have a dedicated server or a KVM VPS.

However, with an OpenVZ VPS, things are a little different.

Here’s how you can get IPv6 working on a OpenVZ VPS with a tunnel – Tutorial for Debian (tested on wheezy).

  1. Create a tunnel at tunnelbroker.net
    Hurricane Electric allows creation of up to 5 free IPv6 tunnels @ tunnelbroker.net.
    Create one for your VPS.
  2. Enable TUN/TAP on your VPS.
    It should normally be possible to do this through your control panel (e.g., SolusVM).
    If not, a support ticket with your provider should get it done fairly quickly.
    Be advised that toggling this option forces a reboot. So plan accordingly.
  3. tb-tun
    tb-tun is a userspace program that utilizes TUN/TAP to build a tunnelbroker tunnel on linux.
    Since we can’t do it any other way on a OpenVZ VPS.

    apt-get install iproute gcc
    cd /root
    wget http://tb-tun.googlecode.com/files/tb-tun_r18.tar.gz
    tar -xf tb-tun_r18.tar.gz
    gcc tb_userspace.c -l pthread -o tb_userspace
  4. Create a new init script
    nano /etc/init.d/ipv6tb

    and put in the following contents (after replacing the correct IP addresses, of course)
    Remember, for the tunnel, your VPS IP is the client and the Hurricane Electric IP is the server.

    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          ipv6
    # Required-Start:    $local_fs $all
    # Required-Stop:     $local_fs $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: starts the ipv6 tunnel
    # Description:       ipv6 tunnel start-stop-daemon
    ### END INIT INFO
    # /etc/init.d/ipv6tb
    touch /var/lock/ipv6tb
    case "$1" in
      start)
        echo "Starting ipv6tb "
          setsid /root/tb_userspace tb [Server IPv4 Address] [Client IPv4 Address] sit > /dev/null 2>&1 &
          sleep 3s #ugly, but doesn't seem to work at startup otherwise
          ifconfig tb up
          ifconfig tb inet6 add [Client IPv6 Address]/64
          ifconfig tb inet6 add [Routed /64]::1/64 #Add as many of these as you need from your routed /64 allocation
          ifconfig tb mtu 1480
          route -A inet6 add ::/0 dev tb
          route -A inet6 del ::/0 dev venet0
        ;;
      stop)
        echo "Stopping ipv6tb"
          ifconfig tb down
          route -A inet6 del ::/0 dev tb
          killall tb_userspace
        ;;
      *)
        echo "Usage: /etc/init.d/ipv6tb {start|stop}"
        exit 1
        ;;
    esac
    exit 0

    Make it executable, and add it to startup –

    chmod 0755 /etc/init.d/ipv6tb
    update-rc.d ipv6tb defaults
  5. Execute it right away –
    /etc/init.d/ipv6tb start

    OR simply reboot.

    Test to confirm that IPv6 connectivity is working

    ping6 -c 5 google.com

VMware tools på Cent-OS 6

1.

Öppna en terminal och växla till root-användare

su root

2.

Uppdatera den virtuella maskinen

yum update

3.

Boota om VM efter uppdatering

reboot

4.

Logga in igen, öppna en terminal och växla till root-användaren

su root

5.

Installera GNU Compiler Collection (GCC) samt perl

yum install gcc kernel-devel perl

6.

Montera VMWare Tools ISO

I vmware esxi klient , klicka ”Guest” Start vmware tools installation
I konsolen kör:
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

7.

Kopiera VMWareTools till disk

cp /mnt/cdrom/VMwareTools*.gz /tmp

8.

Navigera till tmp-katalogen

cd /tmp

9.

Packa upp VMware Tools tarball till/tmp

tar -C /tmp -zxvf VMwareTools*.gz

10.

Gå in i den uppackade katalogen

cd vmware-tools-distrib

11.

Exekviera installations-scriptet med -d växel för standardinställningar

./vmware-install.pl -d

(vill du inte ha standardinställningar eller ändra nån parameter, ta bort -d innan du kör scriptet)

Hur man sätter upp och konfigurerar en OpenVPN server på Debian 6 och 7

Att börja med

Denna guide sätter upp en enkel OpenVPN anslutning mellan klient och server för krypterad kommunikation.
För att sätta upp OpenVPN servern som ”roadwarrior” VPN-server (dvs så all internet trafik på din dator tunnlas via OpenVPN) så se tilläggsavsnittet längst ned.

Som med alla guider av teknisk karaktär så friskriver vi oss från ansvar för eventuella problem som kan följa. Guiden förutsätter grundläggande teknisk kompetens.

Du behöver en SSH anslutning till din dedikerade server eller molnserver. Du kan installera som root men vi rekommenderar en vanlig användare med sudo access och det är även så vi kommer sätta upp det i denna guide. Om du ändå vill använda root så ignorera ”sudo”-kommandot  i varje kommandorad.
För att komma åt din server via SSH på Linux eller Mac så kan du använda SSH i en vanlig terminal. Under Windows rekommenderar vi SSH med  PuTTY. När du har en terminal uppe så kan du logga in med kommandot:

ssh username@ipaddress

Efter att du skrivit in lösenordet är du redo att installera OpenVPN.

Installera OpenVPN och generera nödvändiga filer


Innan vi installerar så ska vi se till att alla paket på systemet är uppdaterade. Det kan vi göra genom att köra följande kommando:

sudo apt-get update

Ovanstående kommando laddar ned och uppdaterar paketlistor för Debians pakethanterare ”apt”. Kör nu följande kommando för att uppgradera paket som har nya versioner:

sudo apt-get upgrade

När systemet uppdaterat alla paket kan vi nu installera OpenVPN med följande kommando:

sudo apt-get install openvpn udev

När installationen är klar så kan vi börja konfigurera OpenVPN. Till att börja med så kopierar vi distributionsfilerna (exempelfiler) till en faktisk konfigurationskatalog:

sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn

När det är klart så kan vi generera filer för RSA algoritmen som används till ditt VPN. Du kommer efterfrågas om ett antal olika värden när du genererar nycklarna. Dessa är valfria att fylla in men du bör tänka på att de kommer inkluderas i certifikatet du genererar så skriv inte in några hemliga uppgifter som du inte vill att någon annan ska få reda på.

Kör följande kommandon:

cd /etc/openvpn/easy-rsa/2.0/

För att generera RSA filer:

sudo ./vars
sudo ./clean-all
sudo ./build-ca

Efter att certifikaten är genererade så kan du skapa en privat nyckel för servern (denna ska inte delas ut till klienten). För att göra detta skriv följande kommandon, och ändra ‘server’ till vad du vill att namnet på din OpenVPN servers filer ska vara. Scriptet kommer också fråga dig om annan information samt generera serverns .crt och .key filer:

sudo . /etc/openvpn/easy-rsa/2.0/build-key-server server

Gennerera Diffie Hellman nyckelparet med följande kommando:

sudo . /etc/openvpn/easy-rsa/2.0/build-dh

Nu kan du generera klientnycklarna för denna OpenVPN installation. Du bör göra detta för varje klient som kommer använda denna OpenVPN anslutning.
Se till att ”common name” är unikt för varje framtida certifikat du skapar. Rekommenderar att du har samma namn på client som common name för att förenkla filhanteringen. Kör följande kommando för att skapa nyckelpar .crt och .key filer med namnet ‘client’:

sudo . /etc/openvpn/easy-rsa/2.0/build-key client

Flytta nu serverns certifikaten och nycklar till /etc/openvpn katalogen. Byt ut server.crt och server.key med de filnamn du använde.

sudo cp /etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/ca.key /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/server.crt /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/server.key /etc/openvpn

För att ta bort någons access till OpenVPN så kan du köra följande kommandon. Byt ut ”commonnameförklienten” mot det common name du använde när du skapade klient-certifikatet.

sudo . /etc/openvpn/easy-rsa/2.0/vars
sudo . /etc/openvpn/easy-rsa/2.0/revoke-full commonnameförklienten

Konfigurera OpenVPN


Nu när filerna är skapade för vår konfiguration så kan vi gå vidare med att konfigurera server och klienter. För att hämta standardfiler kör följande kommandon:

sudo gunzip -d /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/
cd

Du måste nu ändra klientkonfigurationsfil för att det ska ansluta till rätt server och använda rätt nycklelfiler. Det finns ett flertal rader man kan ändra på men till att börja med ska vi ändra raden ‘remote’ så att den ansluter mot till OpenVPN servern. Öppna upp filen och ändra remote så att det står ip-adressen eller hostname till din server  följt av 1194 (porten).  T.ex. ”remote 1.2.3.4 1194” Ändra sedan raderna för ‘cert’ och ‘key’ så de matchar namnet på din egen certifikatfil och nyckel. När du gjort dessa ändringar tryck Ctrl+X och skriv ‘y’ följt av enter-tangent för att spara.

nano ~/client.conf

Kopiera nu klient konfigurationsfiler ”client.conf” samt client nycklar och certifikat (client.crt / client.key) som finns i katalogen /etc/openvpn/easy-rsa/2.0/keys till lokala machinen för dina klienter.

Innan vi är klara så behöver vi göra några ändringar till server konfigurationsfilen . Ändra värdena för ‘cert’ och ‘key’ för att peka på filerna till certifikat och nyckel som din server använder . De som skapades tidigare.

sudo nano /etc/openvpn/server.conf

Efter att det är klart så behöver du bara starta om openvpn för att konfigurationen av OpenVPN ska vara färdig:

sudo /etc/init.d/openvpn restart

RoadWarrior setup


För att konvertera OpenVPN servern till Roadwarrior konfiguration behöver man ändra serverns konfigurationt.

På servern ändrar man i filen /etc/openvpn/server.conf (eller vad du kallat den tidigare)
Lägg till följande rader i slutet (eller avkommentera motsvarande i konfiguratione):

push "redirect-gateway"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Byt ut 8.8.8.8 och 8.8.4.4 mot valfri DNS server du vill använda. Ovanstående använder googles publika DNS:er.
push ”redirect-gateway” gör så att all trafik på klienten går via openvpn.

 

Installera vmware-tools på CentOS 6

Att installera vmware-tools är alltid rekommenderat om du har möjligheten.
Det görs enklast genom att aktivera vmware-tools installationen via ESXi eller VMWare player.

Jag har skrivit andra guider här på Uppe.nu för andra Linux distributioner men för CentOS 6 gör man på sättet nedan

Kör dessa kommandon i rätt ordning:

 

yum -y install perl
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cp /mnt/cdrom/VMwareTools-*.tar.gz /tmp
umount /mnt/cdrom
tar -zxf /tmp/VMwareTools-*.tar.gz -C /tmp
cd /
./tmp/vmware-tools-distrib/vmware-install.pl –default
rm -f /tmp/VMwareTools-*.tar.gz
rm -rf /tmp/vmware-tools-distrib

Klart!

Driftstörning på svenska internet

Idag får vi en mängd olika frågor ifall vi har problem och varför man inte kommer åt sin hemsida.

Normalt sett så brukar vi posta driftstatus gällande Adminors egna tjänster men i detta fall bedömer vi att informationen är av vikt för en del av våra kunder.

Just nu är det strömavbrott i Västerås och detta drabbar en svensk internetoperatör som heter Loopia. Dom är en av de stora domänregistratörerna och har DNS-servrar för många svenska domäner.

Eftersom dessa DNS-servrar är nere just nu så kan det förekomma störningar på webbsidor som hostas hos Loopia eller som använder Loopia DNS servrar.

Adminor kommer inom kort lansera en anycast DNS-tjänst för kunder som behöver mer redundans för deras DNS-utpekningar.