Configurazione sicura di un server web Apache in ambiente Linux

Documenti analoghi
CONFIGURAZIONE SERVER APACHE (XAMPP): ACCESSO SICURO A DIRECTORY DEL FILE SYSTEM.

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Terza lezione: Directory e File system di Linux

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Installazione LAMP. Installare un server lamp su Linux Ubuntu. Per installare un server LAMP in Ubuntu come prima cosa apriamo il terminale:

Introduzione ai servizi di Linux

Guida alla registrazione on-line di un DataLogger

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Servizio di backup dei dati mediante sincronizzazione

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

IMPORTANTE PER ESEGUIRE QUESTA INSTALLAZIONE NEI SISTEMI OPERATIVI NT-2000-XP, BISOGNA AVERE I PRIVILEGI AMMINISTRATIVI.

BACKUP APPLIANCE. User guide Rev 1.0

PORTALE CLIENTI Manuale utente

Online Help StruxureWare Data Center Expert

NOZIONI BASE PER ESERCITAZIONI

CONFIGURAZIONE XAMPP + SSL (HTTPS)

Utenti e gruppi. Ogni utilizzatore di UNIX ha associato: Nomeutente nome alfanumerici UID identità numerica

Gestione rifiuti VeLieRO

Istruzioni per la configurazione di Internet Explorer

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

MANUALE PARCELLA FACILE PLUS INDICE

DINAMIC: gestione assistenza tecnica

ALTRO. v (Aprile 2015)

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

Xampp. Valeriano Maysonnave - A.A. 2014/2015 -

FPf per Windows 3.1. Guida all uso

Regione Toscana - Giunta Regionale

Elementi di Sicurezza e Privatezza Laboratorio 4. Chiara Braghin. Caso di studio: Apache Web Server

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Apache Webserver. Piccola introduzione all'installazione ed alla configurazione, a cura di: Alessandro Gervaso

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Registro elettronico scuola ospedaliera rel. 7.0

Guida alla procedura di inserimento materiale didattico sui minisiti degli insegnamenti

FAQ Dell Latitude ON Flash

1.1.1 ATLAS Postazione Studente : CONFIGURAZIONE DI ATLAS CON CLIENT LINUX

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

FAQ RISPOSTE A DOMANDE FREQUENTI

PHP, MySQL e Linux con RedHat 7.2

ALTRO. v (Maggio 2015)

Apache 2, PHP5, MySQL 5

Ulteo OVD Open Virtual Desktop (Un Desktop Virtuale Open Source)

REGISTRAZIONE. Che applicativi devo scegliere per la registrazione all Osservatorio?...2

Wi-Pie Social Network Punti di accesso alla Rete Internet Manuale d'uso

Il Web Server e il protocollo HTTP

DynDNS tra Client e server Linux Ubuntu (Client e server 8.04 LTS)

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

Guide alla Guida - Progetto WEBpatente 2011

FORMAZIONE PROFESSIONALE

Sophos Mobile Control Guida utenti per Windows Mobile. Versione prodotto: 3.6

Sommario Impostazioni generali del BROWSER... 2 Procedura di registrazione... 9 Primo Accesso Accesso al Portale... 18

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000

SharePoints è attualmente disponibile in Inglese, Italiano e Francese.

Web File System Manuale utente Ver. 1.0

Comando Generale Arma dei Carabinieri

Indice GAMMA. Guida utente

NAL DI STAGING. Versione 1.0

XAMPP (a cura di Michele Acierno a.a. 2012/2013)

Gestione Rapporti (Calcolo Aree)

Schede ADI ADP ADEM Prestazioni aggiuntive MMG. - Manuale - Data Solution Provider s.r.l.

Moduli di Fatturazione Elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Guida all utilizzo del web tool di gestione accesso ai Datacenter

Istruzioni per l uso della Guida. Icone utilizzate in questa Guida. Istruzioni per l uso della Guida. Software di backup LaCie Guida per l utente

LaCie Ethernet Disk mini Domande frequenti (FAQ)

Aggiornamento del software

Guida per l aggiornamento del software del dispositivo USB

- DocFinance Manuale utente

Con.Te Gestione Console Telematici

Medical Information System CGM DOCUMENTS. CompuGroup Medical Italia. CGM DOCUMENTS Pagina 1 di 12

1) GESTIONE DELLE POSTAZIONI REMOTE

Installare sbackup su ubuntu da terminale con il comando sudo apt get install sbackup oppure si può usare Synaptic

2015 PERIODO D IMPOSTA

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Infrastruttura wireless d Ateneo (UNITUS-WiFi)

PIANO DI TUTELA DELLE ACQUE DELLA SICILIA (di cui all'art. 121 del Decreto Legislativo 3 aprile 2006, n 152)

Guida Rapida di Syncronize Backup

Installazione del software Fiery per Windows e Macintosh

Programmazione Web. Laboratorio 4: PHP e MySQL

2 Configurazione lato Router

Tengono traccia degli errori e delle operazioni particolari compiute dalle applicazioni, come ad esempio

SCOoffice Mail Connector for Microsoft Outlook. Guida all installazione Outlook 2002

Application Server per sviluppare applicazioni Java Enterprise

Manuale d uso Lexun Area Riservata proprietà di logos engineering - Sistema Qualità certificato ISO 9001 Det Norske Veritas Italia

Corso BusinessObjects SUPERVISOR

ImporterONE Export Plugin Magento

Elementi di Sicurezza e Privatezza Laboratorio 3 - Web Server Apache (1) Chiara Braghin chiara.braghin@unimi.it!

Sicurezza del Web server

01/05/2013 Istruzioni per l installazione

UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE

VIDA CONFIGURATION VIDA ALL-IN-ONE

Pagina 2 di 14. Indice

Restrizioni di accesso alle risorse Web

CREAZIONE DI UN SOTTOSITO

Login. 1. accedere alla pagina principale del sito 2. nel box di autenticazione Area riservata (cerchiato in fi gura), inserire Username e Password

Informazioni relative al Decreto legislativo 30 giugno 2003, n Codice in materia di protezione dei dati personali

Transcript:

Configurazione sicura di un server web Apache in ambiente Linux In questo documento saranno illustrate le procedure da seguire per garantire un elevato livello di sicurezza nella configurazione di un server web Apache. In particolare verranno presi in considerazione i seguenti aspetti fondamentali: - impostazione dei diritti di accesso alle directory ; - gestione dei meccanismi di autenticazione; - creazione di un ambiente di esecuzione isolato per il server web Apache Prerequisiti: Riferimenti: - installazione di Apache 1.3.x; - distribuzioni linux di riferimento: RedHat 6.x, 7.x Mandrake 6.x, 7.x, 8.x; - privilegi di superutente. - Apache: http://www.apache.org - mod_ssl: http://www.modssl.org - mod_perl: http://perl.apache.org - mod_php: http://www.php.net 1. Impostazione dei diritti di accesso alle directory Dopo aver installato Apache è necessario modificare i permessi di alcuni file secondo le seguenti indicazioni: chmod 511 /usr/sbin/httpd chmod 750 /etc/httpd/conf chmod 750 /var/log/httpd 1.1 Browsing delle directory Se è stato abilitato il browsing delle directory (mediante l opzione IndexOptions nel file httpd.conf) potrebbero verificarsi problemi di sicurezza in presenza di directory web prive di un file index; in questo caso, infatti, un qualunque browser potrebbe avere accesso a tutti i file, anche quelli non esplicitamente linkati all interno di una pagina html. Per ovviare a questo problema è necessario rimuovere il permesso di lettura dalle directory che non contengono un file index. Es. cd /home/httpd chmod 311 MyDir "! # $ %& '' ( ) *+ +, 1/7

Con questa modifica i browser restituiranno un messaggio di errore quando tenteranno di accedere al contenuto della directory MyDir. 2. Meccanismi di autenticazione degli accessi Questa feature può essere utilizzata quando esiste l esigenza di autenticare gli accessi alle pagine web. In alcuni casi, infatti, è necessario proteggere l accesso ad alcune sezioni di un sito web mediante username e password. I passi da seguire per sfruttare al meglio questa funzionalità sono i seguenti: 2.1 Creazione e aggiornamento del file.dbmpasswd Il file.dbmpasswd contiene gli username e le password degli utenti web. Per creare o aggiornare questo file occorre utilizzare il comando dbmmanage. Prima di tutto è necessario cambiare i permessi di questo programma e renderlo scrivibile solo dal superutente, leggibile ed eseguibile dal gruppo e inaccessibile per tutti gli altri. Quindi: chmod 750 /usr/bin/dbmmanage Per creare un username e una password occorre utilizzare il seguente comando: /usr/bin/dbmmanage /etc/httpd/.dbmpasswd adduser <username> Per eliminare un username e una password occorre utilizzare il seguente comando: /usr/bin/dbmmanage /etc/httpd/.dbmpasswd delete <username> Infine, per cambiare la password di un utente: /usr/bin/dbmmanage /etc/httpd/.dbmpasswd update <username> 2.2 Modifica del file httpd.conf Editare il file httpd.conf ed aggiungere le seguenti righe per proteggere una determinata directory web: <Directory /home/httpd/mydir/private > Options None AllowOverride AuthConfig AuthName Area Privata AuthType Basic AuthDBUserFile /etc/httpd/.dbmpasswd require valid-user </Directory> Dove /home/httpd/mydir/private è la directory da proteggere e il file /etc/httpd/.dbmpasswd contiene l elenco degli username e password autorizzati. 2/7

2.3 Riavvio del web server Apache Le modifiche apportate ai punti 2.1 e 2.2 devono essere attivate con un riavvio del web server. Il comando da usare è: oppure: /etc/rc.d/init.d/httpd restart /usr/sbin/apachectl restart 3. Creazione di un ambiente di esecuzione isolato per il server Apache In questa sezione verrà illustrato un sistema per evitare che l ambiente di esecuzione di Apache possa essere utilizzato (in seguito ad un attacco) per ottenere accessi non autorizzati alla macchina che ospita il server web. Un ambiente di esecuzione isolato (detto chroot jail) consente di limitare la porzione di filesystem visibile dal daemon Apache. All interno della chroot jail dovranno essere presenti solo ed esclusivamente i file necessari all esecuzione di Apache (file di configurazione, file di log, eseguibili, librerie, pagine web, script, ecc.). I passi da seguire per la configurazione di Apache in una chroot jail sono i seguenti: 3.1 Creazione dell utente www È necessario che l esecuzione del web server Apache in una chroot jail avvenga con i privilegi di un utente fittizio. Pertanto è possibile creare un utente www con il seguente comando: useradd c Apache Server u 80 s /bin/false r d /home/httpd www (assumendo che l UID 80 e il GID 80 non siano stati assegnati ad altri utenti). 3.2 Inizializzazione della chroot jail Prima di tutto occorre stoppare il daemon Apache (se questo è in esecuzione): /etc/rc.d/init.d/httpd stop Creare la home directory della chroot jail: mkdir /chroot/httpd 3/7

Creare le rimanenti directory: mkdir /chroot/httpd/dev mkdir /chroot/httpd/lib mkdir p /chroot/httpd/usr/sbin mkdir p /chroot/httpd/var/run mkdir p /chroot/httpd/var/log/httpd chmod 750 /chroot/httpd/var/log/httpd mkdir p /chroot/httpd/home/httpd Copiare i seguenti file nelle directory appena create: cp r /etc/httpd /chroot/httpd/etc cp r /home/httpd/cgi-bin /chroot/httpd/home/httpd cp r /home/httpd/html /chroot/httpd/home/httpd (*) mknod /chroot/httpd/dev/null c 1 3 chmod 666 /chroot/httpd/dev/null cp /usr/sbin/httpd /chroot/httpd/usr/sbin (*) /home/httpd/html è la document root del web server 3.3 Copia dei file di supporto per SSL nella chroot jail Se il server Apache è stato compilato con il supporto per SSL occorre copiare nella chroot jail l intero contenuto della directory /etc/ssl: cp r /etc/ssl /chroot/httpd/etc chmod 600 /chroot/httpd/etc/ssl/certs/ca.crt chmod 600 /chroot/httpd/etc/ssl/certs/server.crt chmod 600 /chroot/httpd/etc/ssl/private/ca.key chmod 600 /chroot/httpd/etc/ssl/private/server.key 3.4 Copia delle librerie dinamiche usate da httpd nella chroot jail Per localizzare le librerie dinamiche utilizzate dall eseguibile httpd si può usare il seguente comando: ldd /usr/sbin/httpd Si otterrà un output del tipo: libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x2aad1000) libpthread.so.0 => /lib/libpthread.so.0 (0x2aad8000) libm.so.6 => /lib/libm.so.6 (0x2aaef000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x2ab10000) libdb-3.1.so => /lib/libdb-3.1.so (0x2ab3e000) libmm.so.1 => /usr/lib/libmm.so.1 (0x2abbb000) libdl.so.2 => /lib/libdl.so.2 (0x2abc0000) libc.so.6 => /lib/libc.so.6 (0x2abc4000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaab000) 4/7

Le librerie così identificate dovranno essere copiate nella chroot jail: cp /usr/lib/libgdbm.so.2 /chroot/httpd/lib cp /lib/libpthread.so.0 /chroot/httpd/lib cp /lib/libm.so.6 /chroot/httpd/lib cp /lib/libcrypt.so.1 /chroot/httpd/lib cp /lib/libdb-3.1.so /chroot/httpd/lib cp /usr/lib/libmm.so.1 /chroot/httpd/lib cp /lib/libdl.so.2 /chroot/httpd/lib cp /lib/libc.so.6 /chroot/httpd/lib cp /lib/ld-linux.so.2 /chroot/httpd/lib Inoltre dovranno essere copiate nella chroot jail le seguenti librerie aggiuntive: cp /lib/libnss_compat* /chroot/httpd/lib cp /lib/libnss_dns* /chroot/httpd/lib cp /lib/libnss_files* /chroot/httpd/lib 3.5 Creazione dei file passwd e group nella chroot jail Nella directory /chroot/httpd/etc creare il file passwd contenete l unica entry: www:x:80:80::/home/www:/bin/false e il file group contenente l unica entry: www:x:80: 3.6 Copia dei file di configurazione di rete nella chroot jail Copiare nella directory /chroot/httpd/etc i seguenti file: cp /etc/resolv.conf /chroot/httpd/etc cp /etc/hosts /chroot/httpd/etc cp /etc/nsswitch.conf /chroot/httpd/etc 3.7 Impostazione dei flag di immutabilità Per un maggiore livello di sicurezza è possibile attribuire il flag di immutabilità ai seguenti file di configurazione: chattr +i /chroot/httpd/etc/passwd chattr +i /chroot/httpd/etc/group chattr +i /chroot/httpd/etc/httpd/conf/httpd.conf chattr +i /chroot/httpd/etc/resolv.conf chattr +i /chroot/httpd/etc/hosts chattr +i /chroot/httpd/etc/nsswitch.conf 5/7

3.8 Copia del file /etc/localtime nella chroot jail Affinché le date e gli orari degli eventi registrati nei log file siano coerenti con le impostazioni della propria timezone è necessario copiare nella chroot jail il file localtime : cp /etc/localtime /chroot/httpd/etc/ 3.9 Rimozione di file non necessari I seguenti file non sono più necessari in quanto sono stati copiati nella chroot jail e quindi possono essere tranquillamente rimossi: rm rf /var/log/httpd rm rf /etc/httpd rm rf /home/httpd rm f /usr/sbin/httpd 3.10 Nuova impostazione del syslogd Normalmente i processi dialogano con il syslogd attraverso il dispositivo virtuale /dev/log. Nella chroot jail questo dispositivo non esiste ma puo essere creato modificando nello script di inizializzazione /etc/rc.d/init.d/syslog la linea: in : daemon syslogd m 0 daemon syslogd m 0 a /chroot/httpd/dev/log 3.11 Modifica dello script di inizializzazione del server Apache Editare il file /etc/rc.d/init.d/httpd e cambiare la linea: in: daemon httpd /usr/sbin/chroot /chroot/httpd/ /usr/sbin/httpd e la linea: in: rm f /var/run/httpd.pid rm f /chroot/httpd/var/run/httpd.pid 6/7

3.12 Configurazione dello script di rotazione dei log Editare il file /etc/logrotate.d/apache e cambiare ogni riferimento alla directory: in: /var/log /chroot/httpd/var/log 3.13 Restart del syslogd e start del server Apache Per attivare le modifiche apportate in precedenza occorre fare il restart del syslogd col comando: /etc/rc.d/init.d/syslog restart e far partire il server Apache col comando: /etc/rc.d/init.d/httpd start 7/7