Posts Tagged ‘FreeBSD’

Förbättrad säkerhet med SSH-nycklar

lördag, februari 27th, 2010

Det är väldigt viktigt att man håller efter säkerheten hos sitt system dels genom att se till att allt är uppdaterat, men samtidigt är det viktigt att se till att inte någon obehörig lyckas logga in. Något som är otroligt vanligt nu för tiden är bruteforce-attacker via ssh, där attackeraren försöker logga in med olika användarnamn och lösenord, ofta tusentals gånger per dag. Visserligen är risken relativt liten att någon skulle gissa både användare och lösenord rätt, men den bästa lösningen är att helt sluta acceptera lösenord.

Istället använder man SSH-nycklar för att logga in. Man har två nycklar, en privat och en publik. Den publika nyckel delar man ut till de servrar man vill ha möjlighet att logga in mot och den privata är helt enkelt privat.

Om du använder något unix-baserat system för att ansluta till dina servrar såsom OS X eller någon Linux-variant kan du i terminalen skriva

# ssh-keygen

Detta skapar dina nycklar och sparar dem i katalogen .ssh i din hemkatalog. Eller om du använder tex Putty i windows så laddar man ner puttygen får att skapa nycklarna.
Nyckeln som slutar på .pub skall du sedan ladda upp och lägga in i slutet av filen

~/.ssh/authorized_keys

som EN rad på servern du vill ansluta till utan lösenord.
Nu har du dels bekvämligheten att slippa ange lösenord när du ansluter till servern (såvida du inte har ett lösenord på själva nyckeln) och samtidigt en helt klart säkrare authentiseringsmetod. Men för att slutföra det hela skall vi också se till att det inte går att logga in med lösenord. Detta gör man lättast att helt enkelt ta bort lösenordet helt från användaren. Du kan göra det genom att byta ut lösenordet mot * i lösenordsfilen.

# vipw

för att editera filen och sätt sedan lösenordet till *.

Dynamiska virtualhosts i FreeBSD jail / VPS

fredag, februari 26th, 2010

När man väl fått igång Apache och PHP, MySQL och allt vad man nu vill ha på sin webserver så stöter man snabbt på problemet med hur man skall konfigurera sina virtuella hostar. (dvs. hur man konfigurerar flera olika websidor och domäner på samma server).

Här tänkte vi gå igenom hur man på ett enkelt sätt kan lösa det genom att låta de virtuella hostarna vara dynamiska på så sätt att det räcker med att skapa en katalog motsvarande domänen man vill använda. Detta är mycket enkelt att göra i apache httpd. Vi börjar med att skapa en katalog där våra domänkataloger kommer att finnas. Låt säga

# mkdir /usr/www

Vi skapar också en katalog för loggar

# mkdir /usr/www/logs

Därefter konfigurerar vi apache. I filen /usr/local/etc/apache/httpd.conf:


UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vcombined
CustomLog /usr/www/logs/access_log vcombined
VirtualDocumentRoot /usr/www/%0

Vi måste också lägga till konfiguration för just den katalogen vi valt:

<Directory "/usr/www/*">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

När allt är konfigurerat och filen sparad startar vi om apache

# apachectl restart

Nu är allt klart och vi kan börja skapa virtuella hostar. Peka helt enkelt en domän mot din servers IP och skapa en ny katalog tex:

# mkdir /usr/www/dinnyafestligadomaen.se

Sen är det bara att surfa!

Hantera portssystemet i FreeBSD VPS / Jail

onsdag, februari 24th, 2010

Vi fortsätter även idag med en kortare lathund om hur man kan använda våra virtuella servrar.

Idag skall vi sabbt gå igenom hur man kan förenkla hanteringen och underhållet av installerade portar (paket) i FreeBSD med hjälp av programmet portupgrade.

Installera portupgrade

# csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/ports-supfile
# cd /usr/ports/ports-mgmt/portupgrade
# make install

Installera ports
För att installera ett nytt program använder man portinstall (som är en del av portupgrade-paketet) och skriver:

# portinstall <programmet>

Vet man inte exakt vad programmet heter kan man enkelt söka på http://www.freshports.org/

Uppdatera ports
Det kan vara väldigt bra speciellt ur säkerhetssynpunkt att hålla sina installerade paket ”up to date”. Dels kan man använda kommandot

# pkg_version

för att hitta de portar där det finns nya versionen att installera. Men det finns även ett väldigt viktigt program som talar om vilka av dina portar som har problem med säkerheten och det heter portaudit. För att installera portaudit gör du såhär:

# csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/ports-supfile
# cd /usr/ports/ports-mgmt/portaudit
# make install

och för att ta reda på vilka paket som behöver säkerhetsuppdateringar gör du såhär:

# portaudit -Fda

Du får nu en lista över alla installerade ports som har (kända) säkerhetsproblem, dessa bör du uppdatera.

För att uppdatera ett program eller port så använder man portupgrade genom att skriva:

# portupgrade <programmet>

Om man också vill uppdatera alla paket som beror på paketet man uppdaterar kan man skriva

# portupgrade -r <programmet>

Man kan även uppdatera alla installerade paket genom att skriva

# portupgrade -ra

Läs gärna igenom Ports-sidan i FreeBSD handbook. Där finns mycket information om hur systemet fungerar och hur man använder det på bästa sätt.

Du kan läsa mer om FreeBSD och pakethanteringssystemet ports här:
FreeBSD
FreeBSD Ports
FreeBSD handbook

Du kan läsa mer om portupgrade här:
Portupgrade Manual
FreeBSD Ports

Sekundär mail relay på FreeBSD VPS / jail

tisdag, februari 23rd, 2010

Vi fortsätter även idag med en kortare lathund om hur man kan använda våra virtuella servrar.

Då flera av våra kunder använder sin virtuella server som sekundär server och det faktum att vi ha vår tjänst Dual VPS tänkte jag nu gå igenom hur man sätter upp en sekundär mail relay i FreeBSD med Postfix. Vad det handlar om är alltså en server som kan ta över och ta emot mail om den primära servern av någon anledning inte är tillgänglig.

En viktig sak att börja med är konfigurationen av DNS för att det hela skall fungera. Såhär ser det ut för jails.se:


jails.se has address 87.237.210.209
jails.se has IPv6 address 2001:16d8:cc1e:1::1
jails.se mail is handled by 10 mail.jails.se.
jails.se mail is handled by 20 mx2.jails.se.

Det centrala här är självklart ”jails.se mail is handled by” där det anges två adresser med varsin prioritet (lägre nummer ger högre prioritet). Vi har alltså en primär server i mail.jails.se och en sekundär i mx2.jails.se.

Installation av Postfix
Precis som tidigare kommer vi att använda oss av portsystemet för att installera Postfix. Detta görs enkelt i tre steg såhär:

# csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/port-supfile
# cd /usr/ports/mail/postfix
# make install

Konfigurationen av den sekundära servern
Konfigurationsfilen det handlar om är:

/usr/local/etc/postfix/main.cf

och till att börja med är det viktigt att vi inte tillåter någon skicka mail via den sekundära servern och det gör man genom att lägga till en rad som denna i main.cf:

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

och dessutom måste vi se till att servern accepterar mail till de domäner som servern är sekundär server för:

relay_domains = jails.se, domain1.tld, domain2.tld

Sedan är det viktigt att ha denna rad så att servern inte försöker leverera mailen lokalt utan skickar vidare allt till den primära servern.

relay_recipient_maps =

Av samma anledning är det också viktigt att dina domäner inte är listade i någon av följande konfigurationsfält

mydestination
virtual_alias_domains
virtual_mailbox_domains

Förutsatt att den primära mailservern redan är uppsatt och är korrekt konfigurerad är detta allt som krävs för en sekundär mail-relay. Det är självklart viktigt att du testat så allt fungerar. Detta gör du enklast genom att helt stänga av den primära mailserver och skicka ett mail till någon@domain.tld och sedan hålla koll på mail-loggarna. Nu bör mailet istället hamna hos den sekundära mailserver
som sedan kommer att försöka leverera detta till den primära med jämna mellanrum. När du sedan startar den primära servern igen bör mailet dyka upp där efter ett tag.

Du kan läsa mer om FreeBSD och pakethanteringssystemet ports här:
FreeBSD
FreeBSD Ports
FreeBSD handbook

Du kan läsa mer om Postfix här:
Postfix

Apache + PHP på din FreeBSD VPS / Jail

måndag, februari 22nd, 2010

Vi tänkte fortsätt sviten med lite kortare lathundar för hur man snabbt kommer igång med våra servertjänster. Idag tänkte vi gå igenom hur man kommer igång med Apache och PHP.

Vi börjar, precis som i tidigare lathundar med att se till att ports-systemets filer är uppdaterande, genom att checka ut den senaste versionen med kommandot csup.


# csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/ports-supfile

Där ports-supfile är default-konfigurationen för vilka filer som skall hämtas och cvsup.se.freebsd.org är server där vi hämtar dem. Skulle .se vara full för tillfället går det bra att använda bland annat .dk. När det är klart kan vi börja med att installera apache.


# cd /usr/ports/www/apache22
# make install

I det här läget ges ett antal val för bland annat vilka moduler som skall byggas med apache och om man vill ha stöd för SSL och IPv6. Sen bygger vi! FreeBSD Ports kommer nu att bygga dels Apache och dels alla andra paket som krävs för att Apache skall fungera.

När detta är klart:

===> Registering installation for apache 2.2.14_5

Nu gäller det att se till att apache startar när server startar. Detta gör man enklast genom att lägga till raden:


apache22_enable="YES"

i /etc/rc.conf

Sedan är det dags att installera och konfigurera PHP.

# cd /usr/ports/lang/php5
# make install

Det är viktigt att vara noga med vilka inställningar som görs i kommande dialogruta:
PHP inställningar

Se till här att markera ‘Build Apache module’ annars kommer inte koplingen till Apache att fungera. När allt är klart ser du detta:


***************************************************************

Make sure index.php is part of your DirectoryIndex.

You should add the following to your Apache configuration file:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

***************************************************************
===> Compressing manual pages for php5-5.2.12
===> Registering installation for php5-5.2.12

Nu måste vi se till att inställningar finns i Apache-konfigurationen /usr/local/etc/apache/httpd.conf för att det skall fungera. Dock så är i normala fall detta redan med i default-konfigurationen:


<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>

och


<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>

Nu skall allt vara klart och du kan starta apache manuellt genom

# sh /usr/local/etc/rc.d/apache start

eller

# apachectl start

Därefter kan du antingen konfigurera upp en egen www-katalog eller använda den som är default-konfigurerad:

/usr/local/www/data

Nu är det bara att börja koda!

Du kan läsa mer om FreeBSD och pakethanteringssystemet ports här:
FreeBSD
FreeBSD Ports
FreeBSD handbook

Du kan läsa mer om Apache och PHP här:
Apache 2.2 dokumentation
PHP dokumentation

Ruby on Ralis på din FreeBSD VPS / Jail

söndag, februari 21st, 2010

Vi har innan visat hur man mycket enkelt kan installera och starta ett django-projekt med våra serverlösningar. Nu tänkte vi också gå igenom hur man gör för att få igång Ruby on Rails. Detta är ett mycket liknande förfarande som för django så det kan vara till hjälp att snabbt läsa igenom även artikeln om det (här).

Det kanoniska tillvägagångsättet i fem steg är:

# csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/ports-supfile
# cd /usr/ports/www/rubygem-rails
# make install
# rails /tmp/test_app
# /tmp/test_app/script/server

Eller med FreeBSD förkompilerade paket i tre enkla steg:

# pkg_add -r rubygem-rails
# rails /tmp/test_app
# /tmp/test_app/script/server

Vi vill först att FreeBSDs pakethanteringssystem är uppdaterat och det gör vi såhär:

# csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/ports-supfile

Därefter är det dags att installera ruby, gem och rails vilket vi med ports kan göra med två enkla kommandon

# cd /usr/ports/www/rubygem-rails
# make install

Under installationen kommer man få ett par dialogrutor där man ka välja vilka stöd som skall finnas kompilerade i ruby och rails, bland annat IPv6 och SQL. När allt är klart får du ett meddelande som linkar detta:

===> Registering installation for rubygem-rails-2.3.4

Nu är det bara att skapa ett nytt projekt och starta server och det gör man såhär:

# rails /tmp/test_app
# /tmp/test_app/script/server

Du kan läsa mer om FreeBSD och pakethanteringssystemet ports här:
FreeBSD
FreeBSD Ports
FreeBSD handbook

Information om Ruby on Rails hittar du här:
Ruby on Rails

Komma igång med django i din FreeBSD VPS/Jail

lördag, februari 20th, 2010

På senare tid har ramverket django blivit mycket populärt, därför tänkte vi lite snabbt gå igenom hur du enklast kommer igång på din egen virtuella server.

Det kanoniska tillvägagångssättet i fem steg, från installation till startad server:

# csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/ports-supfile
# cd /usr/ports/www/py-django
# make install
# django-admin.py startproject /tmp/projekt1
# python /tmp/project1/manage.py startserver

För att istället ladda ner förkompilerade paket i endast tre steg:

# pkg_add -r py26-django
# django-admin.py startproject /tmp/projekt1
# python /tmp/project1/manage.py startserver

Till att börja med ser vi till att ha det senaste portsträdet (ports är FreeBSDs pakethanteringssystem och det är från ports vi kommer att kompilera komponenterna till django).

Detta kommando uppdaterar ports-trädet och ser till att vi får de senaste versionerna av de program vil installerar:

csup -h cvsup.se.freebsd.org /usr/share/examples/cvsup/ports-supfile

När detta är klart kan vi börja med installationen av django. Django är baserat på python och kommer därför att kräva detta som en ‘dependecy’.

För att installera django börjar vi med att gå till katalogen i portsträdet som motsvarar paketet vi vill installera:

cd /usr/ports/www/py-django

Därefter ber vi ports att installera paketet:

make install

Nu kommer ports automatiskt installera de andra program som krävs för att django skall fungera och dessutom ge oss några val om vad det skall finnas stöd för i din installation av django, som bland annat MySQL. Dialogrutan ser ut såhär:

Därefter får vi också några alternativ för Python och det kan se ut såhär:

Nu är alla val klara och django börjar installeras, efter några minuter kommer du se texten:


===> Compressing manual pages for py26-django-1.1.1
===> Registering installation for py26-django-1.1.1

Installationen är klar och du kan börja använda django. Såhär skapar du ett nytt project med django:


django-admin.py startproject /tmp/projekt1

Slutsligen för att starta utvecklingsservern kör vi följande kommando:

cd /tmp/projekt1
python manage.py startserver

Mer information hittar du här:
FreeBSD
Django Project
Django tutorial
FreeBSD Ports
FreeBSD handbook

FreeBSD 8.0-RELEASE

onsdag, december 2nd, 2009

Sådär, nu är äntligen alla servrar uppdaterade med senaste FreeBSD, nämligen 8.0-RELEASE. Dessutom har alla VPS-kontot uppgraderats och även patchats för den nya local-root exploiten. Läs mer här:

http://lists.freebsd.org/pipermail/freebsd-security/2009-December/005369.html
http://seclists.org/fulldisclosure/2009/Nov/371

FreeBSD 8.

måndag, september 21st, 2009

Då var det äntligen här, FreeBSD 8.

Vi har nu uppgraderat en av våra servrar till senaste versionen av FreeBSD.

Ny server

lördag, mars 28th, 2009

Nu är vår nya maskin satt i drift

Detta innebär bland annat att vi nu kan erbjuda fler ip-adresser per jail, ipv6 anslutning och ipv6-adresser.
Vi kommer så snart som möjligt även göra websida och övriga tjänster tillgängliga via ipv6.