Linuxserver för hemmabruk
Så du känner behovet av en server hemma? Kanske för att hosta en mindre hemsida, eller att dela ut filer på det lokala nätverket? Jag tänkte gå igenom hur man gör en grundläggande installation av en server i linux. När ni är klara med guiden så har ni förhoppningsvis självförtroende nog i terminalen för att på egen hand uttöka med spelservrar och annat som ni kan tänkas vilja ha.
Jag väljer att använda mig utav disten ArchLinux. Arch är en minimal dist med "Rolling Release" som utvecklingsmodell. Det innebär att disten saknar versioner. Om man önskar kan man göra installationen från en CD som man brände 2005, såvida man gör nätverksinstallationen så kommer man hamna i ett system identiskt med det man får om man installerar med den senaste CD-imagen.
Rolling Release har både fördelar och nackdelar. Fördelen är att man alltid får senaste versionen av alla mjukvaror, nackdelen är att systemet kan gå sönder vid en uppdatering om man är ovarsam.
Jag avråder därför å det starkaste att placera en sådan server som jag beskriver i den här guiden i produktion. Om man om ett par år vill installera ett nytt paket så kan det innebära en del trubbel. Som hemmaserver fungerar det däremot perfekt, då väger fördelen med senaste mjukvaran över, iallafall för mig.
Förberedelser:
Du behöver givetvis en dator som du tänkt använda som server. Denna dator behöver ha möjlighet att boota antingen från USB eller CD. Denna dator behöver även en internetuppkoppling under installationen, för en server så känns detta kanske givet.
Vidare så behöver du en annan dator att förbereda CD:n eller USB:t med.
Börja med att ladda ned ISO-filen. Detta görs enklast via torrent: https://www.archlinux.org/iso/2012.07.15/archlinux-2012.07.15-netinstall-dual.iso.torrent.
Bränn sedan denna ISO till en CD, alternativt släng över den på ett USB minne med hjälp av programmet UNetBootIn.
Boota datorn från CDn eller USBt. Du kommer att få välja mellan 32-bit (i686) eller 64-bit. Välj det som passar in på din CPU.
Installationen:
Nu börjar det hända grejer. Du sitter nu i root-prompten i Archs livemiljö. Härifrån installerar vi ett grundläggande system så att du sedan kan boota från HDD och konfigurera klart systemet.
Börja med att ladda svensk tangentbordslayout, detta görs med följande kommando:
loadkeys sv-latin1
Sedan tycker jag det är praktiskt att sätta upp nätverket. Identifiera vad linuxkärnan valde att kalla ditt nätverkskort med kommandot:
ifconfig -a
Detta bör ge en output i stil med:
[simon][~]$ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 metric 1
inet 192.168.0.119 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::be5f:f4ff:fe0d:21ee prefixlen 64 scopeid 0x20<link>
ether bc:5f:f4:0d:21:ee txqueuelen 1000 (Ethernet)
RX packets 46317 bytes 35716899 (34.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26232 bytes 4401302 (4.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 47
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 16436 metric 1
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[simon][~]$
Mitt nätverkskort hette i det här fallet eth0. För att skaffa dig ett IP-nummer skriver du nu:
dhcpcd eth0
Detta kommer sätta upp ditt nätverkskort med DHCP snabbt och lätt.
Nu partionerar vi disken. Identifiera först den disk du vill använda med kommandot:
fdisk -l
Detta kommer ge dig en lista på diskar och dess partitioner. Linux kallar diskarna för sd[a-z] och partitionerna anges med en siffra i slutet, alltså sd[a-z][1-9]. En dator med bara en disk och en partition kommer alltså enbart ha partitionen sda1 tillgänglig.
Notera vilken disk du vill installera operativsystemet på och kör kommandot:
sudo cfdisk /dev/sda
Där du ersätter sda med den disk du faktiskt vill använda.
Cfdisk är ganska straight-forward. Markera med upp och ned tangenterna de olika partitioner som redan finns på disken, och välj med höger och vänster tangenterna samt enter att radera dessa partitioner. När du endast ser ledigt utrymme där partitionerna tidigare fanns så markerar du det lediga utrymmet och väljer att skapa en ny partition. Välj sedan alternativet att skriva ändringarna till disk följt av att avsluta cfdisk.
Min exempeldator har nu en partition, sda1. Nu vill jag givetvis skapa ett filsystem på disken så att vi kan börja jobba.
Detta görs med kommandot:
mkfs.ext4 /dev/sda1
Där du, återigen, ersätter sda1 med din partition.
Montera din nyskapade partition under /mnt med kommandot:
mount /dev/sda1 /mnt
(Från och med nu får ni förstå att sda1 byts ut mot eran egen partition )
Nu är det dags att börja installera paket. Det här steget är inte helt nödvändigt, men jag rekomenderar det. Som default som tankar archlinux sina paket från sina egna FTP-servrar. Dessa är dock inte särskilt snabba. Jag rekomenderar därför att ni ändrar till lite mer närliggande server, svensk, tysk eller holländsk brukar fungera bra. Detta kommer även ge er ert första möte med en texteditor i terminalen. Redigera filen /etc/pacman.d/mirrorlist med kommandot:
nano /etc/pacman.d/mirrorlist
Leta sedan reda på en server som verkar bra och ta bort kommentaren framför den. Ett exempel på min dator, raden som tidigare såg ut såhär:
Ser nu ut såhär:
Inga andra ändringar är nödvändiga. Spara genom att klicka Ctrl-X för att avsluta.
Installera bassystemet i din installation med kommandot:
pacstrap /mnt syslinux
Installera även en bootloader med kommandot:
pacstrap /mnt grub-bios
Vi vill även att systemet ordnar hårddiskkonfigurationen åt oss, så slipper vi ordna det manuellt:
genfstab -p /mnt >> /mnt/etc/fstab
Nu börjar det faktiskt likna någonting det här. Vi ska nu chroota oss in i den nya installationsmiljön vi skapat. Med det menas att vi går in i den nya installationen utan att starta om datorn. Detta är möjlig efterssom både livmiljön och vår nya installation båda kör linuxkärnan. Vi behåller alltså själva basen i operativsystemet, men byter ut alla applikationer mot de i vår nya miljö, enkelt förklarat.
Chroota genom att köra följande kommando:
arch-chroot /mnt
Sådärja. Nu konfigurerar vi systemet lite lätt innan vi startar om datorn för att boota systemet på riktigt.
Börja med att välja ut ett fräckt hostname för din server. Detta är vitalt för dess funktion. Att det är fräckt alltså.
Skriv ditt hostname i filen /etc/hostname med kommandot vi använde tidigare:
nano /etc/hostname
Spara filen.
Redigera nu filen /etc/hosts med nano (jag kommer från och med nu utgå från att du förstår att nano används vid filredigering). /etc/hosts bör se ut på fäljande sätt:
#
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost Arch
::1 localhost.localdomain localhost Arch
# End of file
Där Arch är mitt hostname i det här fallet.
Ställ in svenskt tangentbordslayout genom att redigera filen /etc/vconsole.conf (den tidigare inställningen var ej permanent). Filen bör se ut såhär för svensk layout:
KEYMAP=sv-latin1
Ställ in locale för din dator. Jag rekomenderar engelskt, på så sätt får du felmeddelanden på engelska och kan lättare få support senare. Gör detta genom att först redigera filen /etc/locale.gen och ta bort kommentaren för raden:
#en_US.UTF-8 UTF-8
Redigera nu /etc/locale.conf och ge den följande innehåll:
LANG=en_US.UTF-8
LC_COLLATE=C
Dags att konfigurera nätverket. Detta görs i filen /etc/rc.conf. Under nätverkssektionen bör du göra något liknande som jag gjort:
# NETWORKING
# ----------
HOSTNAME=Arch
interface=eth0
address=192.168.0.119
netmask=255.255.255.0
broadcast=192.168.1.255
gateway=192.168.0.1
NETWORK_PERSIST="no"
Byt ut uppgifterna mot egna som passar bättre. Du behöver iallafall ha statiskt IP om du vill kunna komma åt servern utifrån ditt eget nätverk senare, så DHCP är inte längre ett alternativ.
Ta en kik lite längre ned i rc.conf. Längst ner finns en sektion kallad daemons. Där vill jag att du lägger till "sshd", bredvid network, syslog-ng, crond och andra eventuella demoner som kan stå där nere.
För att din installation ska boota senare så kommer du behöva en ramdisk. Denna skapas med kommandot:
mkinitcpio -p linux
Du behöver även installera bootloadern för att systemet skall fungera. Detta görs med:
grub-install /dev/sda
Jag får väl påminna igen om att byta ut sda mot er egen disk.
Ge nu er rootanvändare ett lösenord med kommandot:
passwd
Gå ur er chroot genom att skriva "exit" i terminalen. Härifrån avmonterar du får hårddisk med kommandot:
umount /mnt
Nu kan du starta om datorn. Detta görs med kommandot "reboot".
När du datorn startar om avlägsnar du ditt bootmedium och låter datorn boota från hårddisk.
Konfigurationen:
Du har nu installerat ArchLinux. Känn dig som hemma!
Du möts av inloggningen när din dator startas igen. Ange root som användare och lösenordet du valde tidigare som lösen.
Vi börjar med att installera programmet sudo. Sudo kan användas för att ge en vanlig användare ökade rättigheter. Det är en bra grej, du kan då administrera systemet från en vanlig användare och inte förrän du använder sudo kan du egentligen sabba något med systemet. Som normal användare kan du köra vilka skripts och virus som helst utan att vara rädd för att få problem. Först när du kör sagda skripts med sudo eller som root så kan olyckan vara framme.
Lägg till en ny användare med kommandot:
adduser
Du kommer få instruktioner på skärmen som är enkla att följa. Är du osäker på något så trycker du enter, då laddas standard alternativet.
Installera sudo:
pacman -S sudo
Följ instruktionerna på skärmen för att installera paketet.
Ge din nyskapade användare rättigheter att använda sudo med kommandot:
EDITOR=nano visudo
Du kommer att placeras i din favoriteditor, nano. Där lägger du till följande rad:
användare ALL=(ALL) ALL
Byt ut användare mot ditt användarnamn.
Logga ut genom att skriva "exit", logga återigen in fast med din nyskapade användare. Testa om sudo fungerar med kommandot:
sudo -s
Du kommer att få fylla i ditt lösenord och därefter bör du hamna i en rootprompt istället för den du tidigare var i. Skriv "exit" för att återgå till vanliga rättigheter igen.
Installera nu Apache. Detta görs med kommandot:
sudo pacman -S apache
Den med sinne för detaljer noterar att jag nu skrev sudo framför ett kommando jag inte använde det framför. Det är för att vi tidigare var root, den högste användaren. Nu är vi bara en simpel användare som dock kan få extra behörighet genom sudo.
Starta apache med kommandot:
sudo rc.d start apache
Se till att apache startar varje gång vi startar servern genom att lägga till apache i listan över demoner. De längst ner i rc.conf som ni kanske minns.
Innan vi är klara installerar vi även ssh:
sudo pacman -S openssh
Starta även sshd med kommandot:
sudo rc.d start sshd
Du har nu en primitiv server. Du kan komma åt servern genom att öppna en webbläsare på en annan dator och surfa in på IP:t du gav din server. Förmodligen möts du av Apaches testsida. Din server har nu även möjlighet att servas och konfigureras på håll med hjälp av ssh. Nu är det alltså god tid att stuva undan servern i garderoben och genomföra fortsatt konfiguration från din desktop med hjälp av en ssh-klient, typ putty.
Det var allt för idag kids, någon dag när jag får tid över igen så skall jag fortsätta med att berätta hur ni integrerar php och mysql i eran server, samt sätter upp en filserver. Här har ni iallafall grunderna, utifrån det här kan ni bygga ert system hur stort eller hur litet ni vill.