Torna indietro   Hardware Upgrade Forum > Altre Discussioni > Amministrazione e Configurazione Server

OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini è uno smartwatch compatto capace di offrire un'esperienza completa di monitoraggio della salute e fitness con una cassa da 43 mm che può adattarsi a qualsiasi tipo di polso, dal più grande al - soprattutto - più piccolo. Con l'architettura dual-chip e un'autonomia che può coprire due giorni con tranquillità, rappresenta la soluzione ideale per chi cerca prestazioni premium in un formato ridotto.
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-10-2013, 20:18   #1
Genymus
Senior Member
 
L'Avatar di Genymus
 
Iscritto dal: Oct 2007
Messaggi: 364
[WEB SERVER] HTTPS e PHP, Configurazione da zero di un webserver sicuro

Salve a tutti,
Sto sviluppando (in PHP) un registro elettronico, e dati i dati sensibili che viaggiano tra server e client, avrei bisogno di configurare un web server che utilizzi il protocollo SSL.

Stavo pensando a:
• CentOS con interfaccia testuale (per evitare lo spreco di risorse) come Sistema Operativo
• Apache come web server
• PHP come linguaggio di programmazione server-side
• MySQL (in locale e non accessibile dall’esterno) come database

Premetto che sono disposto a cambiare sia OS che Web Server (ho sentito ben parlare di nginx, visto che a quanto pare sfrutta meglio le risorse), ma preferirei mantenere PHP e MySQL.
Quindi se qualcuno avesse un OS che funzioni meglio e un web server più performante, sappia che ogni consiglio è ben accetto (tenendo conto però che verrà utilizzato come test (in locazione nella scuola) per un anno e, se tutto funziona, verrà trasferito su un vps.

Adesso torniamo al problema… quello a cui punto, è avere un sistema sicuro ed configurato al meglio.
Di guide ne ho lette parecchie, ma non fanno altro che fare confusione (visto che sono per la maggior parte incomplete o incompatibili tra loro).

Possiedo già un certificato SSL (creato con openssl, devo creare una cosa economica ma sicura ).
Adesso dovrei scegliere il web server e configurarlo in modo che funzioni con https, e qui entrate in gioco voi.
Dove posso trovare una guida dettagliata (passo per passo, esempio con comandi per installare i vari moduli), su come configurare il web server, https, php, mysql server e (possibilmente).
Cosa mi consigliate di usare come firewall (software)?

Vi informo che (a parte quelle sporadiche volte che ho avviato ubuntu) non ho mai utilizzato Linux e non ho mai configurato niente in ssl… ho qualche conoscenza teorica, ma non mi basta, per cui mi rivolgo a voi, che probabilmente ci sarete già passati.

Un’ultima informazione, naturalmente pensavo di usare anche jquery per eseguire richieste a server, ma il dubbio che mi assilla è… funzionerà? Mi pare di aver capito, che basta far puntare le richieste e i link ad https, ma funziona anche con le $.post di jquery? O viaggia in chiaro? Se includo script js con percorsi relativi, è automatico il passaggio in https? C’è bisogno di decifrare i dati una volta arrivati al client o si arrangia a fare tutto il browser?.

Grazie mille a tutti quanti per il loro tempo.

PS: gradirei non si facessero commenti riguardo alla mia ignoranza sulla materia, quindi per favore, niente risposte come “se non hai mai configurato o usato Linux, perché lo devi usare?” perché la risposta sarebbe: “perché devo usare un sistema operativo tipo Windows che è oneroso ed inutile, quando posso (imparare innanzitutto) usarne uno basato su Linux molto più performante?”. Un’altra domanda potrebbe essere “Perché ti ostini a voler configurare un server https? Fallo fare a qualcuno che ne è capace!” la cui risposta sarebbe: “Innanzitutto, voglio imparare (anche sono come esperienza personale), ed anche perché devo sviluppare questa applicazione ad uno costo ridotto e non posso ne voglio dipendere da un’azienda esterna per la configurazione del server”. Inoltre, tutti quanti hanno dovuto imparare quello che sanno e ci sono molti modi per farlo, uno di questi è quello che sto utilizzando in questo momento.
__________________
Genymus!!!
"Che cosa vorreste far incidere sulla vostra tomba?". "Torno fra 5 minuti."
"Lucido" è quando credi soltanto a metà di ciò che ti dicono. "Brillante" è quando sai a quale metà credere.
"Pensa, ogni volta che respiro muore un uomo." "Hai provato a fare qualcosa per l'alito?"

Aforismieaforismi.it
Genymus è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2013, 00:53   #2
marco_t
Junior Member
 
Iscritto dal: Jul 2008
Messaggi: 8
Puoi scaricare la guida di Ubuntu Server dal sito ufficiale
http://help.ubuntu-it.org/
marco_t è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2013, 01:12   #3
Genymus
Senior Member
 
L'Avatar di Genymus
 
Iscritto dal: Oct 2007
Messaggi: 364
Ti ringrazio per la risposta tempestiva, stavo giusto dando un'occhiata ad un manuale, e sembra promettente...
Deduco quindi che mi consigli di usare ubuntu al posto di centos e apache2, inoltre vedo che la guida è piuttosto completa, almeno per quello che mi interessa...

Però, ancora non ho tutte le informazioni necessarie, gradirei avere informazioni sulla configurazione di apache2, php e mysql, per avere un sistema sicuro, mi rivolgo quindi agli amministratori di server che sicuramente in questo forum abbonderanno... cosa mi consigliate?

Per la configurazione di php, queste opzioni possono bastare?
php.ini:
  • display_errors=0
  • register_globals=0
  • safe_mode=0

altre opzioni:
  • magic_quotes_gpc > attiva

Mi sembrano poche, quindi immagino ci siano altre cose da modificare, anche sulla configurazione di apache.

Ritornando al discorso jquery, posso anche testarlo a configurazione terminata.

Aggiungo: che librerie/script php mi consigliate per cifrare i dati sul database? Naturalmente i più veloci e performanti, senza perdere di vista la sicurezza?

Ringrazio anticipatamente tutti.
__________________
Genymus!!!
"Che cosa vorreste far incidere sulla vostra tomba?". "Torno fra 5 minuti."
"Lucido" è quando credi soltanto a metà di ciò che ti dicono. "Brillante" è quando sai a quale metà credere.
"Pensa, ogni volta che respiro muore un uomo." "Hai provato a fare qualcosa per l'alito?"

Aforismieaforismi.it

Ultima modifica di Genymus : 13-10-2013 alle 01:35.
Genymus è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2013, 21:04   #4
antenore
Senior Member
 
Iscritto dal: Jul 1999
Città: Padova
Messaggi: 561
Visto che parti quasi da zero con linux, ti consiglio per ora di lasciare in disparte la sicurezza (ssl e firewall) e iniziare a configurare l'ambiente LAMP.
Poi quando vedi che tutto funziona e hai compreso come funziona inizi a inserire il certificato ssl, etc..
Per le guide basta che cerchi la parola LAMP (che sta per Linux Apache Mysql Php) su google. Io ho iniziato con questa guida su linux debian.

Quote:
Cosa mi consigliate di usare come firewall (software)?
Su linux si usa iptables.
antenore è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2013, 22:53   #5
Genymus
Senior Member
 
L'Avatar di Genymus
 
Iscritto dal: Oct 2007
Messaggi: 364
Quote:
Originariamente inviato da antenore Guarda i messaggi
Visto che parti quasi da zero con linux, ti consiglio per ora di lasciare in disparte la sicurezza (ssl e firewall) e iniziare a configurare l'ambiente LAMP.
Grazie mille, credo che seguirò il tuo consiglio, perchè comunque è un progetto che verrà seguito durante il tempo libero, ed il tempo di progettazione è di minimo 6 mesi fino a 12... di conseguenza, avrò tutto il tempo di configurare la sicurezza. Quello che invece mi preme sapere è se dovrò adottare delle strategie di programmazione diverse da quelle attuali (senza https), o se il discorso non vale perchè apache si occuperà di cifrare le informazioni dopo aver elaborato le pagine tramite l'interprete php.

Grazie ancora
__________________
Genymus!!!
"Che cosa vorreste far incidere sulla vostra tomba?". "Torno fra 5 minuti."
"Lucido" è quando credi soltanto a metà di ciò che ti dicono. "Brillante" è quando sai a quale metà credere.
"Pensa, ogni volta che respiro muore un uomo." "Hai provato a fare qualcosa per l'alito?"

Aforismieaforismi.it
Genymus è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2013, 23:26   #6
Tasslehoff
Senior Member
 
L'Avatar di Tasslehoff
 
Iscritto dal: Nov 2001
Città: Kendermore
Messaggi: 6659
Riguardo al sistema operativo ti consiglio CentOS, lo troverai più conservativo di altre distribuzioni in merito ad aggiornamenti o versioni dei vari componenti che andrai ad utilizzare (es php, piuttosto che mysql), però in termini di stabilità e affidabilità parti già da ottime basi.
L'unico aspetto relativo alla sicurezza che può interessare l'OS sono gli updates, installare aggiornamenti a casaccio (o appena rilasciati) imho non è un approccio molto saggio per molti motivi (uno fra tutti, nessuno può garantire il funzionamento delle applicazioni se si fanno updates in questo modo, e come chiunque può confermare i test richiedono tempo e risorse), d'altro canto nemmeno usare versioni arcaiche dei package è molto saggio.
Un approccio ragionevole e sensato potrebbe essere quello di effettuare updates seguendo i rilasci delle major version di CentOS (es ora siamo a CentOS 6.4, quando uscirà la 6.5 attendi un paio di settimane e poi testa in pre-produzione o sviluppo, se gli adeguati test fai un backup full della produzione e poi upgrade e test anche di quella), magari monitorando più attentamente i rilasci di sicurezza delle componenti più sensibili (es Apache e php).

Per il webserver stai pure su Apache, a meno che tu preveda accessi stratosferici o a meno di utilizzare server davvero poco potenti (es un sistema embedded o simil Raspberry PI per capirci) la differenza è trascurabile.
Su apache troverai inoltre una comunità molto più ampia, molte più guide, tutorial e quant'altro ti potrà servire per implementare la tua soluzione.
Inoltre nel caso dovessi crescere molto con gli accessi sarà difficile che il webserver possa rappresentare un collo di bottiglia o la soluzione ad un eccessivo carico; in quel caso dovrai integrare la tua architettura con altre componenti (hw o sw), come acceleratori php o sistemi di caching, tutta roba che per il momento rappresenterebbe una inutile complicazione.
L'hardening di apache consiste essenzialmente nel modificare alcune direttive in modo da esporre online meno informazioni possibili riguardo alla tua architettura, e nell'eliminare (non occorre cancellare o disinstallare nulla, basta solo commentare parti dei file di configurazione) le componenti opzionali (per lo più moduli) che non serviranno alla tua applicazione.
Puoi cercare su google "apache hardening" per trovare un sacco di semplici tutorial.
In merito a SSL non c'è molto da dire, per l'ambiente di sviluppo puoi usare tranquillamente un certificato self signed senza spendere nulla, non è ne più sicuro ne meno rispetto ad un certificato firmato da una CA trustata dai browser. In produzione potete scegliere se proseguire con quello o comprare un certificato, la configurazione del virtualhost https è davvero banale e coinvolge pochissime direttive, in rete trovi innumerevoli tutorial che spiegano come farlo passo passo.

L'hardening di MySQL dipende anche da che architettura vuoi realizzare, di base puoi cominciare con il lanciare lo script mysql_secure_installation che trovi con ogni istanza di mysql (anche quella preinstallare dal setup di CentOS).
A parte le ovvie raccomandazioni sulle credenziali (ad es utilizzare uno schema dedicato per le tue applicazioni e non usare l'utente root, applicare delle grant sensate ai vari utenti) e sull'esposizione del dbms (che ovviamente deve essere acceduto unicamente da host fidati, come il webserver o l'application server, eventualmente dagli host di monitoraggio o di sviluppo, non certo esposto alla mercé del web) va particolarmente curato l'aspetto dei backup e dei relativi test di restore (in questo per fortuna mysql è estremamente amichevole).

La componente più sensibile e da curare maggiormente imho è quella applicativa.
Usando php devi stare molto attento a non seguire tutte le best practice di sviluppo per non esporre a web applicazioni suscettibili di attacchi basati su sql injection, controllare bene le query con gli adeguati caratteri di escape, usare prepared statements e tutte gli accorgimenti necessari a rendere il tuo codice sicuro.
Purtroppo su questo non ti posso essere d'aiuto perchè esula dalle mie competenze, posso solo consigliarti di rivolgerti a un forum dedicato allo sviluppo php per maggiori dettagli.

In merito al firewall può andar benissimo iptables, anzi è ottimo.
CentOS di suo propone una configurazione che è già sufficientemente curata in tal senso (lancia un "iptables -L -n -v" al boot per darle un'occhiata), anzi dovrai aprire la porta 80 o 443 per poter fare il browsing del tuo sito o delle tue applicazioni.

Sempre in termini di sicurezza posso consigliarti l'installazione di un sistema di intrusion detection basato su analisi dei log come OSSEC, un adeguato monitoraggio basato su Nagios e un sistema di raccolta statistica delle risorse e delle performance come Collectd (e il frontend grafico Collect Graph Panel), anche queste però ti consiglio di valutarle in fasi successive, considera che molti ambienti di produzione su cui ho lavorato (ahimè o forse per fortuna, finchè ci saranno non mancherà lavoro per noi consulenti ) non prevedono nemmeno una frazione di queste misure.

Immagino che un giorno poi vorrete anche verificare gli accessi al sito/applicazioni, a tal proposito mi permetto di consigliarti l'ottimo Piwik (anzichè buttarsi su Google Analytics come fa bovinamente la gran parte delle persone... )
__________________
https://tasslehoff.burrfoot.it | Cloud? Enough is enough! | SPID… grazie ma no grazie
"Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say."

Ultima modifica di Tasslehoff : 13-10-2013 alle 23:35.
Tasslehoff è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2013, 19:12   #7
Genymus
Senior Member
 
L'Avatar di Genymus
 
Iscritto dal: Oct 2007
Messaggi: 364
Allora, ringrazio tutti (e particolarmente Tasslehoff per il suo post sulla sicurezza)... ho avuto una settimana molto impegnata e non ho trovato neppure il tempo di ringraziare tutti. Per adesso, mi occuperò di configurare un server ubuntu (come server di sviluppo) applicando però le regole di Tasslehoff.
Ho deciso in questo modo, perchè immagino che ubuntu server sia il modo migliore di iniziare, quindi quando avrò preso confidenza con questa distro, passerò a centos per la parte di produzione.

Riguardo all'ultimo post, sebbene non utilizzi raspberry o sistemi simili, mi ritrovo comunque con un processore Atom dual core da 1,6 Ghz e circa 512mb di RAM... so che non è molto, però da una parte forse è meglio così, perchè molte volte è questo che offrono come VPS a basso costo...
Tasslehoff, mi consigli ancora Apache (ho sentito che è in grado di assegnare anche 30 mb di ram per ogni richiesta).

Non riesco bene a comprendere i sistemi di intrusion detection, ma lavorerò anche su questo (immagino che siano previsti e preconfigurati sui VPS).

Ancora grazie
__________________
Genymus!!!
"Che cosa vorreste far incidere sulla vostra tomba?". "Torno fra 5 minuti."
"Lucido" è quando credi soltanto a metà di ciò che ti dicono. "Brillante" è quando sai a quale metà credere.
"Pensa, ogni volta che respiro muore un uomo." "Hai provato a fare qualcosa per l'alito?"

Aforismieaforismi.it
Genymus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
OneDrive avrà presto una nuova app per W...
Il nuovo OnePlus 15 è pronto: il ...
Non serve essere Prime: 7 offerte bomba ...
Ci sono un sacco di prodotti con lo scon...
Xbox Game Pass, gli aumenti di prezzo pe...
I nuovi top di gamma di HONOR sono pront...
Il Garante della Privacy ha bloccato Clo...
C'è un nuovo operatore virtuale s...
Google Chrome non si ferma più: &...
Tenstorrent produrrà chip nelle f...
Tutte le offerte HOT di Amazon: Galaxy S...
Dreame L40 Ultra AE: il nuovo robot aspi...
Fesseria totale: c'è chi demolisc...
Super TV in saldo su Amazon: Mini-LED, O...
Fast Motion Response: la nuova funzional...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v