Webbservrar Apache httpd

Relevanta dokument
Modul 3 Föreläsningsinnehåll

Implementationshandledning Version 1.2

Unix-Säkerhet. Övningsprov. Frågorna skall besvaras på ett sådant sätt att en insatt kollega skall känna sig informerad.

Innehåll. Dokumentet gäller från och med version

Linuxadministration 2 1DV421 - Laborationer Webbservern Apache, Mailtjänster, Klustring, Katalogtjänster

Din egen webserver med Apache

Installation och Konfiguration av Koha i Linux och stödtjänster i Windows Server

Innehållsförteckning:

Ansökningsanvisning för SUNET TCS-certifikat via SLU CA.

Modul 5 Joomla! Översikt. Denna moduls mål: - Få kunskaper om Joomla! - Få kunskap om installation och konfiguration.

256bit Security AB Offentligt dokument

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Krypteringteknologier. Sidorna ( ) i boken

Bakgrund Avgränsningar Begreppsförklaring Kortfattade anvisningar... 2

Java Secure Sockets Extension JSSE. F5 Secure Sockets EDA095 Nätverksprogrammering! Roger Henriksson Datavetenskap Lunds universitet

Systemkrav och tekniska förutsättningar

Kryptering. Krypteringsmetoder

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

SSL/TLS-protokollet och

Platsbesök. Systemkrav

Skapa din egen MediaWiki

Webbservrar, severskript & webbproduktion

Microsoft Internet Information Services 7 / 7.5

Introduktion till protokoll för nätverkssäkerhet

Att bygga VPN. Agenda. Kenneth Löfstrand, IP-Solutions AB. Olika VPN scenarios. IPsec LAN - LAN. IPsec host - host SSH

Filleveranser till VINN och KRITA

Quick Start CABAS. Generella systemkrav CABAS / CAB Plan. Kommunikation. Säkerhet

Identity Management i ett nätverkssäkerhetsperspektiv. Martin Fredriksson

Tips: Titta på relevanta genomgångar på webbplatsen

Beställning av certifikat v 3.0

Användarmanual för Pagero Kryptering

Probably the best PKI in the world

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

OBS! Det är av största vikt att innan konfiguration av modulen, genomfört de inställningar som presenteras med bilagorna till denna manual.

Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Linuxadministration I 1DV417 - Laboration 7 SSH-magi och systemtrolleri. Marcus Wilhelmsson 6 mars 2013

Säker e-kommunikation

Certifikatbaserad inloggning via SITHS, tillämpningsexempel

Säkerhet. Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Installera din WordPress med 9 enkla steg

Modul 6 Webbsäkerhet

Installationsguide Junos Pulse för MAC OS X

Datasäkerhet. Petter Ericson

Small Business Server 2011 SSL certifikat administration

Installationsanvisningar

Beställning av certifikat v 2

Ladda upp filer fra n PLC till PC

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Många företag och myndigheter sköter sina betalningar till Plusoch

Integrera Linux mot AD

Uppdatering av MONITOR Mobile 8.0

Beställning av certifikat för anslutning till BankID (RP certificate) Version

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

Att använda kryptering. Nyckelhantering och protokoll som bygger på kryptering

Beställning av Förlitandepart-certifikat Version

Protokollbeskrivning av OKI

Unix-miljöer i större sammanhang

Föreläsning 7. DD2390 Internetprogrammering 6 hp

Termer och begrepp. Identifieringstjänst SITHS

Arbetsuppgift 1: På virtuell maskin med Ubuntuserver, skapa katalog och skapa Dockerfile. Skapa ny katalog i din hemmakatalog, med namnet webbserver.

Föreläsningens innehåll. Säker kommunikation - Nivå. IPSec. IPSec - VPN. IPSec - Implementation. IPSec - Består av vad?

Säkerhet. Föreläsning 6 Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

F5 Exchange Elektronikcentrum i Svängsta Utbildning AB

Manual för Typo3 Site-Admins version 4.04

Termer och begrepp. Identifieringstjänst SITHS

Telia Centrex IP Administratörswebb. Handbok

Forms and Favorites. Version 5.2. Administratörshandbok

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

Byta bort SITHS-cert i frontend

Direktkoppling till Girolink Internet. Filöverföring av betalningar och betalningsinformation via Girolink Internet. Version 1.0

Webmail instruktioner

Dokumentation för VLDIT AB. Online classroom

Kundverifiering av SPs digitala signaturer

Konfigurering av eduroam

Linuxadministration 1 1DV417

Din manual NOKIA

Tjänstebeskrivning Extern Åtkomst COSMIC LINK. Version 1.0

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster

Skicka och hämta filer med automatik

Storegate Pro Backup. Innehåll

Systemkrav. Åtkomst till Pascal

Handledning för installation och komma igång med Joomla

Extern åtkomst till Sociala system

Kort-kort om utdelade användarkonton och datormiljön på NADA

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

Remote Access Service

Om du misstänker att värdens privata nyckel har manipulerats kan du skapa en ny genom att utföra följande steg:

SITHS. Integration SITHS CA Copyright 2015 SecMaker AB Författare: Andreas Mossnelid Version 1.2

Installations- och uppdateringsprogram för FileMaker Server 12.0v2 augusti 2012

Installation xvis besökssystem, Koncern

emopluppen Installationsmanual

Kapitel 10, 11 o 12: Nätdrift, Säkerhet. Publika telenätet. Informationsöverföring. Jens A Andersson. Telenäten är digitala.

Aktivering av SSL (https).

Använda Google Apps på din Android-telefon

Uppdaterad EDP Future Uppdateringsanvisningar från 1.7x. Sida 1

Instruktion för integration mot CAS

Uppstart. Agda Drift

Microsoft.NET Version Http Activation MapGuide Open source (installerad på en webbserver, tillgänglig utanför brandväggen) Web Deploy 3.

DNSSEC och säkerheten på Internet

Transkript:

Webbservrar Apache httpd Linuxadministration II 1DV421 1

Referenslitteratur Administering and Securing the Apache Server Contributor: Appu, Ashok(Author) 2

Historia Rob McCool National Center for Supercomputing Applications Apache Group Version 1.0 i december 1995 3

Marknadsandelar Apache är den ledande programvaran inom webbservermarknaden Netcraft gjorde en undersökning i augusti där det visade sig att Apache hade 47% av marknaden 4% 11% 15% 47% 23% Apache IIS ngix Google Övriga 4

Om Apache Skapad helt i öppen källkod av programmerare över hela världen Klarar av de flesta serverskriptspråk, såsom PHP, ASP och CGI Modulbaserat Finns för flera operativsystem, t.ex. Windows, OS/2 och Linux Implementerar flera olika sätt för autentisering, däribland lösenordfiler, databaser och katalogtjänster 1.3, 2.0 och 2.2 är de versioner som utvecklas/underhålls 5

Förbättringar i Apache 2.x Skalbarheten Processer körs smidigare och mer effektivt = snabbare Snabbare processer = möjlighet att köra större installationer utan överbelastning UNIX-trådar Bättre stöd för icke-unix-baserade plattformar Stöd för IPv6 6

Vad Apache hantera? HTML Bilder Ljud Animationer Interaktiva skript Säkerhetsbaserade webblösningar Virtuella domäner M.m. 7

Systemkrav Helt beroende på serverns användningsområde Enkel 486 till Multiprocessor 8MB RAM och uppåt 6MB hårddiskutrymme och uppåt Går självklart utmärkt att köra i en virtuell miljö 8

Hur fungerar en webbserver? 1. Klienten ansluter med hjälp av en webbläsare mot webbservern 2. Webbservern letar upp filen som klienten frågar efter 3. Webbservern öppnar filen 4. Webbservern skickar filen till klienten som tar emot den i webbläsaren 1. 2. 4. 3. Klient Webbserver Filsystem 9

Funktioner Kärnan i Apache är liten och innehåller de centrala komponenterna Extra funktioner byggs upp av moduler som laddas in vid uppstart Moduler är individuella bitar kod Dessa moduler kan installeras/avinstalleras allt efter behov 10

Moduler Program eller rutin som utför en speciell funktion Omskrivning av Apache för version 0.8.* Två versioner, 1.3 och 2.x Ej kompatibla Några installeras som standard vid installation 11

Coremoduler core mpm_common leader beos, mpm_netware, mpm_os2, mpm_winnt perchild prefork worker 12

Andra moduler mod_access Funktionalitet för access-restriktioner för filer mod_alias Ger möjlighet att ändra katalog där filer ligger. T.ex: www.kalmar.se/ikoner Ska inte ligga i /var/www/ikoner, utan i /home/kalle/ikoner Hanterar även redirects för URLs mod_auth Hanterar autentiseringsfunktionalitet Skickar användarinformation i klartext mod_auth_anon, mod_auth_dbm mod_digest/mod_auth_digest Skickar lösenord krypterade med en MD5-funktion 13

Andra moduler forts. mod_dir Ger en avslutande / till URLs som pekar mot kataloger. T.ex.: www.kalmar.se/info ger www.kalmar.se/info/ mod_info Ger information om alla laddade moduler och serverinställningar på URL www.servernamn/server-info mod_mime Bestämmer filtyp antingen genom att läsa av filändelsen eller genom att läsa av dess metaheaders mod_mime_magic Läser helt enkelt av de första bitarna av en fil för att kunna bestämma vad för sorts fil det är mod_rewrite Skriver om URLs on-the-fly. T.ex: http://mail.kalmar.se ger https://webmail.kalmar.se:8080 14

Andra moduler forts. mod_speling Struntar i stor eller liten bokstav: www.kalmar.se/products.php == www.kalmar.se/products.php Klarar dock bara av en felstavning per URL Kan inte ta hand om felstavade användarnamn, såsom www.kalmar.se/~kalle mod_status Visar information om serverns status, såsom antal processer, hur mycket data som skickats, uptime, CPU-användande m.m., på URL www.servernamn/server-status mod_userdir Tillåter användare att ha egna websidor i sina hemkataloger. Default webkatalog är public_html. Deras URL blir www.servernamn/ ~username 15

Apaches konfiguration Konfiguration av Apache sker genom editering av dess konfigurationsfiler /etc/apache2/apache2.conf Huvudkonfigurationsfilen /etc/apache2/httpd.conf Fil för bakåtkompabilitet /etc/apache2/sites-avaliable/ Virtualhost-konfigurationer /etc/apache2/sites-enabled/ innehåller de siter som används /etc/apache2/mods-avaliable/ Modul-konfigurationer /etc/apache2/mods-enabled/ innehåller de moduler som används Konfigurationsfilerna är väldokumenterade och enkla att följa Många konfigurationsexempel finns på Apaches hemsida 16

Apaches konfiguration CentOS Konfiguration av Apache sker genom editering av dess konfigurationsfil /etc/httpd/conf/httpd.conf Huvudkonfigurationsfilen /etc/httpd/conf.d/* Konfigurationsfiler för vissa moduler, t.ex. mod_ssl 17

Apaches konfiguration forts. Konfigurationsfilen är uppbyggd av två delar Serverkonfiguration Anger generella inställningar för webbservern, såsom servernamn, tid innan timeout och vilka portar som servern ska lyssna på ServerName www.norden.net TimeOut 120 Listen 80 Direktiv Börjar med <Direktiv> och avslutas med </Direktiv> <Directory /www/katalog > </Directory> 18

Serverkonfiguration ServerName Anger namnet som webbservern ska använda sig av. Ofta webbserverns angivna domännamn. Listen Anger vilken/vilka portar som webbservern ska lyssna på. ServerRoot Anger roten för webbserverns konfigurationsfiler DocumentRoot Anger standardroten för webbdokumenten User & Group Anger vilka användar- och grupprättigheter som webbservern ska exekveras med ServerAdmin Anger e-postadressen för webbserveradministratören. Syns bland annat på felsidor. 19

Serverkonfiguration forts. TimeOut Anger antal sekunder innan en anslutning får timeout KeepAlive Anger om flera förfrågningar får skickas via samma anslutning (Persistent connection) ServerName www.norden.net Listen 80 ServerRoot /etc/httpd DocumentRoot /www/html User apache Group apache ServerAdmin admin@norden.net TimeOut 120 KeepAlive off 20

Options Options Kontrollerar vilka funktioner som tillåts i kataloger Options väljs bort genom att sätta ett framför dem Options Indexes Exempel Options All Alla options är påslagna förutom MultiViews Options ExecCGI Tillåt exekvering av CGI-skript Options FollowSymLinks Tillåt symboliska länkar Options Indexes Tillåt listning av katalogers innehåll <Directory /www/html/katalog > Options Indexes FollowsymLinks -ExecCGI </Directory> 21

Virtuella domäner Konfigureras med direktivet <VirtualHost> Flera domännamn på samma webbserver Används på bland annat webbhotell Använder samma konfigurationsparametrar som serverkonfigurationen ServerAlias används för att ange flera domännamn som utnyttjar samma VirtualHost NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin studentadmin@kalmar.se DocumentRoot /www/html/student ServerName student.kalmar.se ServerAlias www.student.se </VirtualHost> 22

<Directory> <Directory> Anger inställningar för en viss katalog <Directory /var/www/html/katalog > Options Indexes Order allow,deny Allow from all </Directory> <DirectoryMatch> Fungerar på samma sätt som <Directory>, men kan hantera reguljära uttryck <DirectoryMatch ^/www/.*/[0-9]{3} > </DirectoryMatch> Detta exempel matchar alla underkataloger till /www/ som består av tre siffror 23

<Files> <Files> Anger inställningar för vissa filer, antingen i en viss katalog eller för hela webbservern <Directory /var/www/html/hemligkatalog > <Files \.doc > Order allow,deny Allow from 192.168.0.1 Deny from all </Files> Options Indexes </Directory> <FilesMatch> Fungerar på samma sätt som <Files>, men kan hantera reguljära uttryck <FilesMatch \.(gif jpe?g png)$ > </FilesMatch> 24

<Location> <Location> Anger inställningar för en viss URL <Location /admin> SetHandler server-status Order deny,allow Allow from admin.kalmar.se Deny from all </Location> Exemplet ovan visar specifik konfiguration för URL domän.tld/admin <LocationMatch> Fungerar på samma sätt som <Location>, men kan hantera reguljära uttryck <LocationMatch /(extra special)/data > </LocationMatch> 25

Säkerhet Apache tillhandahåller många säkerhetslösningar för olika ändamål Åtkomstkontroll Allow, deny.htaccess Användarverifiering.htaccess LDAP Krypterad överföring SSL Certifikat Certificate Authority 26

Enkel åtkomstkontroll Order Anger i vilken ordning anrop ska tillåtas Tillåt alla anrop som standard Order allow, deny Neka alla anrop som standard Order allow, deny Allow from Anger vilka datorer, IP-adresser och domäner som får ansluta till webbservern Allow from 192.168.0.1 admin.kalmar.se 10.0 Exemplet ovan anger att IP-adressen 192.168.0.1, datorn med domännamn admin.kalmar.se samt att hela 10.0-nätverket får ansluta till webbservern 27

Enkel åtkomstkontroll forts. Deny from Anger vilka datorer, IP-adresser och domäner som nekas anslutning till webbservern Deny from 165.65.74.21.kalmar.se 10.0.1 Exemplet ovan anger att IP-adressen 165.65.74.21, datorer med huvuddomän kalmar.se samt 10.0.1-nätverket nekas anslutning till webbservern 28

Åtkomstkontroll forts. Kataloger kan även skyddas med hjälp av.htaccess-filer Dessa filer styr vad och hur innehållet i katalogerna ska skyddas Kan även ange funktioner som enbart ska gälla för en viss katalog Bör endast användas om du inte har tillgång till webbserverns konfigurationsfil, då samma åtkomstkontroll kan uppnås genom att använda sig av direktivet <Directory> 29

Åtkomstkontroll forts. För att.htaccess ska fungera måste AllowOverride vara angivet i serverkonfigurationen AuthConfig Tillåt autentiseringsfunktioner FileInfo Tillåt direktiv som behandlar dokument Indexes Tillåter direktiv som kontrollerar kataloglistning Limit Tillåt direktiv som kontrollerar åtkomst via Order, allow och deny Options Tillåt Options 30

Användarverifiering via.htaccess Exempel på användarverifiering via.htaccess AuthType Anger vilken typ av autentisering som används, kan vara Basic eller Digest AuthName Anger beskrivning på det skyddade området AuthUserFile Anger vilken fil som ska användas vid användarautentisering AuthGroupFile Anger vilken fil som ska användas vid gruppautentisering Require Anger vilka användare/grupper som tillåts åtkomst Require user root nisse pelle Require group admins webbadmins AuthType Basic AuthName "Password Required" AuthUserFile /www/passwords/user.file AuthGroupFile /www/passwords/group.file Require Group admins 31

.htaccess forts. Skapande av en AuthUserFile görs via kommandot htpasswd # htpasswd c /var/passwords/user.file nisse New password: mypassword Re-type new password: mypassword Adding password for user nisse När nu filen är skapad kan vi lägga till ännu en användare # htpasswd /var/passwords/user.file pelle New password: mypassword Re-type new password: mypassword Adding password for user pelle Ta bort användare htpasswd D /var/passwords/user.file pelle 32

.htaccess forts. user.file nisse:7eth72.49nfgw För att göra lösenorden säkrare kan MD5-kryptering användas # htpasswd m /var/passwords/user.file pelle New password: mypassword Re-type new password: mypassword Adding password for user pelle user.file nisse:7eth72.49nfgw pelle:$apr1$h52jg/..$eb6ssx6gmgo6cu8roqy/q0 group.file admins nisse pelle root 33

Kryptering Kryptering används ofta för säker kommunikation De viktigaste anledningarna Konfidentialitet Integritet Autentisering Omöjliggöra förnekelse av överfört meddelande Vid kryptering används oftast en av de två vanligaste metoderna Symmetrisk nyckel Asymmetrisk nyckel 34

Symmetrisk nyckel Snabb och effektiv om enbart konfidentialitet och integritet behövs Vid kryptering med symmetriska nycklar innehar alla medverkande parter samma nyckel Detta innebär att om en utomstående part får tag i denna nyckel är inte informationen konfidentiell längre Klarar inte av att binda meddelande till en viss person, då alla krypterar och dekrypterar med samma nyckel DES och AES är exempel på symmetrisk kryptering 35

Asymmetrisk nyckel Använder två olika nycklar En för kryptering (publik nyckel) En för dekryptering (privat nyckel) Sändaren krypterar meddelandet med mottagarens publika nyckel, och mottagaren dekrypterar meddelanden med sin privata nyckel Dessa nycklar kan även användas för att signera meddelandet, så att mottagaren kan verifiera vem meddelandet verkligen kommer ifrån Vid signering av ett meddelande signerar sändaren meddelandet med sin privata nyckel, och denna signatur verifieras sedan av mottagaren med sändarens publika nyckel RSA är ett exempel på asymmetrisk kryptering SSL och TLS bygger på RSA 36

Asymmetrisk kryptering Bono Edge Läsbar text Krypterad text Läsbar text Edges publika nyckel Edges privata nyckel 37

Asymmetrisk verifiering Bono Verifiering Edge Originaltext Signerad text Verifierad text Bonos privata nyckel Bonos publika nyckel 38

HTTPS HTTPS är en säker version av HTTP, där all kommunikation är krypterad via antingen Secure Sockets Layer (SSL) eller Transport Layer Security (TLS) SSL/TLS Kryptografiska protokoll som tillhandahåller säker överföring över Internet TLS är efterföljaren av SSL Används bland annat av banker, e-handel och mailtjänster Skyddar emot avlyssning och förfalskning av meddelanden Vilken grad av skydd som ges beror på hur webbservern är konfigurerad HTTPS använder port 443 istället för standardport 80 39

HTTPS forts. För att Apache ska kunna använda sig av HTTPS, krävs att modulen mod_ssl är installerad och att ett certifikat skapas och signeras Certifikat används vid verifiering av webbplatsens äkthet Certifikat skapas oftast av väletablerade certifikatsutfärdare, såsom VeriSign, Thawte Consulting och VISA 40

Certifikat Använder en digital signatur för att koppla en publik nyckel till en identitet Kan användas för att verifiera att en publik nyckel är korrekt Ett certifikat innehåller bland annat Publik nyckel som signerats Identitet, såsom ett namn på en person, dator eller organisation Utfärdare Validitetsperiod 41

Certificate authority Utfärdar och verifierar digitala signaturer Är oftast en betrodd enhet Speciell del av företaget Utomstående företag, såsom VeriSign och Thawte consulting Det är möjligt att själv skapa certifikat i Linux med hjälp av OpenSSL 42

Certifikat forts. Sätta igång SSL i Apache under Ubuntu > sudo a2enmod ssl I CentOS läggs en fil till i /etc/httpd/conf.d som innehåller SSLkonfiguration och laddar modulen 43

Certifikat forts. Skapa nyckel # openssl genrsa -des3 -out server.key 1024 Generating RSA private key, 1024 bit long modulus...++++++...++++++ unable to write 'random state e is 65537 (0x10001) Enter pass phrase for server.key: Detta skapar en unik nyckel Lösenordet bör vara minst åtta tecken långt 44

Certifikat forts. Skapa en CSR (Certificate Signing Request) # openssl req -new -key server.key -out server.csr Du kommer här att få fylla i land, företag osv. När detta är klart skapas CSR:en och läggs i server.csr 45

Certifikat forts. Signera certifikatet # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Detta kommando skapar den signerade nyckeln sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private Kopiera nu nycklarna till exempelvis följande kataloger 46

Konfigurera Apache med SSL Följande ska läggas till i konfigurationen för den VirtualHost du vill ha SSLkrypterad SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key Du måste även lägga till att Apache ska lyssna på port 443 Listen 443 47

Demo 48