<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://wiki.luigidacunto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Luigi.dacunto</id>
	<title>SysAdmin Smart Help - Beta - Contributi utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.luigidacunto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Luigi.dacunto"/>
	<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Speciale:Contributi/Luigi.dacunto"/>
	<updated>2026-04-09T13:13:26Z</updated>
	<subtitle>Contributi utente</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Configurazione_o_ripristino_dual_boot_Windows_11_e_Windows_10_gi%C3%A0_installati&amp;diff=120</id>
		<title>Configurazione o ripristino dual boot Windows 11 e Windows 10 già installati</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Configurazione_o_ripristino_dual_boot_Windows_11_e_Windows_10_gi%C3%A0_installati&amp;diff=120"/>
		<updated>2024-08-29T20:10:23Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Windows}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La procedura di seguito è stata testate ed eseguita per il ripristino di un dual boot con Windows 11 e Windows 10 già presenti su due dischi separatamente e installati su uno stesso PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aggiungere Windows 10 al Boot Loader ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Aprire il Prompt dei Comandi come Amministratore ===&lt;br /&gt;
Clicca con il tasto destro sul pulsante Start e seleziona ''Windows Terminal (Amministratore)'' o ''Prompt dei comandi (Amministratore)''.&lt;br /&gt;
&lt;br /&gt;
=== 2. Creare un Nuovo Boot Entry ===&lt;br /&gt;
Digita il seguente comando per copiare l'entry di Windows 11 e creare una nuova entry per Windows 10:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Windows\System32&amp;gt;bcdedit /copy {current} /d &amp;quot;Windows 10&amp;quot;&lt;br /&gt;
La voce è stata copiata correttamente in {99e12345-7e74-12ec-1234-cec456456456}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questo comando copierà l'entry corrente (Windows 11) e dandogli il nuovo nome &amp;quot;Windows 10&amp;quot;. Dopo aver eseguito il comando, annota l'identificatore GUID che verrà restituito, poiché lo userai nei passaggi successivi.&lt;br /&gt;
&lt;br /&gt;
=== 3. Modificare il Nuovo Boot Entry ===&lt;br /&gt;
Ora dovrai impostare il percorso del disco e della partizione per Windows 10. Esegui il seguente comando, sostituendo &amp;lt;nowiki&amp;gt;GUID&amp;lt;/nowiki&amp;gt; con l'identificatore ottenuto nel passaggio precedente e specificando il corretto disco e partizione in cui è installato Windows 10:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bcdedit /set {GUID} device partition=B:&lt;br /&gt;
bcdedit /set {GUID} path \WINDOWS\system32\winload.efi&lt;br /&gt;
bcdedit /set {GUID} osdevice partition=B:&lt;br /&gt;
bcdedit /set {GUID} description &amp;quot;Windows 10&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assicurati di sostituire B: con la lettera dell'unità corretta in cui è installato Windows 10. Se non si conosce di preciso la lettera dell'unità corrispondente si può accedere dal normale risorse del computer e vedere dove è stata montata la partizione, altrimenti è possibile utilizzare il tool di windows &amp;quot;diskpart&amp;quot; e una volta avviato il prompt di Diskpart lanciare il comando &amp;quot;list volume&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\WINDOWS\system32&amp;gt;diskpart&lt;br /&gt;
&lt;br /&gt;
Microsoft DiskPart versione 10.0.19041.3636&lt;br /&gt;
&lt;br /&gt;
Copyright (C) Microsoft Corporation.&lt;br /&gt;
Nel computer DESKTOP-MJLQBOG&lt;br /&gt;
&lt;br /&gt;
DISKPART&amp;gt; list volume&lt;br /&gt;
&lt;br /&gt;
  Volume ###  Let. Etichetta    Fs     Tipo        Dim.     Stato      Info&lt;br /&gt;
  ---------   ---  -----------  -----  ----------  -------  ---------  --------&lt;br /&gt;
  Volume 0     D                       DVD-ROM         0 b  Nessun su&lt;br /&gt;
  Volume 2     C   Sys-Win11P   NTFS   Partizione   930 Gb  Integro&lt;br /&gt;
  Volume 3                      FAT32  Partizione   100 Mb  Integro    Sistema&lt;br /&gt;
  Volume 4                      NTFS   Partizione   615 Mb  Integro    Nascosto&lt;br /&gt;
  Volume 6     B   Sys-Win10P   NTFS   Partizione   465 Gb  Integro    Avvio&lt;br /&gt;
&lt;br /&gt;
DISKPART&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Chiusura di DiskPart in corso...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Impostare l'Ordine di Visualizzazione ===&lt;br /&gt;
Per assicurarti che l'entry di Windows 10 appaia nel menu di avvio, puoi modificare l'ordine delle voci nel boot loader. Usa questo comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bcdedit /displayorder {GUID} /addlast&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questo comando aggiungerà l'entry di Windows 10 alla fine del menu di avvio.&lt;br /&gt;
&lt;br /&gt;
=== Verifica e Riavvio ===&lt;br /&gt;
Dopo aver eseguito questi passaggi, riavvia il computer. Dovresti vedere un menu di avvio che ti permette di scegliere tra Windows 11 e Windows 10. Se non appare, potrebbe essere necessario controllare le impostazioni del BIOS/UEFI per assicurarti che il boot manager di Windows sia impostato come dispositivo di avvio primario.&lt;br /&gt;
&lt;br /&gt;
Clicca sul pulsante Start di Windows e cerca msconfig, comparirà la voce &amp;quot;Configurazione di Sistema&amp;quot;. Aprendo la finestra seleziona il tab in alto &amp;quot;Opzioni di Avvio&amp;quot; e verifica la presenza della seconda entry in lista, da qui puoi cambiare l'ordine del boot e impostare il timeout sulla schermata di scelta del boot che comparirà al prossimo riavvio.&lt;br /&gt;
&lt;br /&gt;
Se hai bisogno di ulteriori modifiche o se riscontri problemi, puoi sempre tornare al Prompt dei comandi e utilizzare ''bcdedit'' per apportare le modifiche necessarie.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Configurazione_o_ripristino_dual_boot_Windows_11_e_Windows_10_gi%C3%A0_installati&amp;diff=119</id>
		<title>Configurazione o ripristino dual boot Windows 11 e Windows 10 già installati</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Configurazione_o_ripristino_dual_boot_Windows_11_e_Windows_10_gi%C3%A0_installati&amp;diff=119"/>
		<updated>2024-08-29T18:00:16Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Windows}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La procedura di seguito è stata testate ed eseguita per il ripristino di un dual boot con Windows 11 e Windows 10 già presenti su due dischi separatamente e installati su uno stesso PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aggiungere Windows 10 al Boot Loader ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Aprire il Prompt dei Comandi come Amministratore ===&lt;br /&gt;
Clicca con il tasto destro sul pulsante Start e seleziona ''Windows Terminal (Amministratore)'' o ''Prompt dei comandi (Amministratore)''.&lt;br /&gt;
&lt;br /&gt;
=== 2. Creare un Nuovo Boot Entry ===&lt;br /&gt;
Digita il seguente comando per copiare l'entry di Windows 11 e creare una nuova entry per Windows 10:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Windows\System32&amp;gt;bcdedit /copy {current} /d &amp;quot;Windows 10&amp;quot;&lt;br /&gt;
La voce è stata copiata correttamente in {99e12345-7e74-12ec-1234-cec456456456}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questo comando copierà l'entry corrente (Windows 11) e dandogli il nuovo nome &amp;quot;Windows 10&amp;quot;. Dopo aver eseguito il comando, annota l'identificatore GUID che verrà restituito, poiché lo userai nei passaggi successivi.&lt;br /&gt;
&lt;br /&gt;
=== 3. Modificare il Nuovo Boot Entry ===&lt;br /&gt;
Ora dovrai impostare il percorso del disco e della partizione per Windows 10. Esegui il seguente comando, sostituendo &amp;lt;nowiki&amp;gt;GUID&amp;lt;/nowiki&amp;gt; con l'identificatore ottenuto nel passaggio precedente e specificando il corretto disco e partizione in cui è installato Windows 10:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bcdedit /set {GUID} device partition=B:&lt;br /&gt;
bcdedit /set {GUID} path \Windows\System32\winload.exe&lt;br /&gt;
bcdedit /set {GUID} osdevice partition=B:&lt;br /&gt;
bcdedit /set {GUID} description &amp;quot;Windows 10&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assicurati di sostituire B: con la lettera dell'unità corretta in cui è installato Windows 10.&lt;br /&gt;
&lt;br /&gt;
=== 4. Impostare l'Ordine di Visualizzazione ===&lt;br /&gt;
Per assicurarti che l'entry di Windows 10 appaia nel menu di avvio, puoi modificare l'ordine delle voci nel boot loader. Usa questo comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bcdedit /displayorder {GUID} /addlast&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questo comando aggiungerà l'entry di Windows 10 alla fine del menu di avvio.&lt;br /&gt;
&lt;br /&gt;
=== Verifica e Riavvio ===&lt;br /&gt;
Dopo aver eseguito questi passaggi, riavvia il computer. Dovresti vedere un menu di avvio che ti permette di scegliere tra Windows 11 e Windows 10. Se non appare, potrebbe essere necessario controllare le impostazioni del BIOS/UEFI per assicurarti che il boot manager di Windows sia impostato come dispositivo di avvio primario.&lt;br /&gt;
&lt;br /&gt;
Clicca sul pulsante Start di Windows e cerca msconfig, comparirà la voce &amp;quot;Configurazione di Sistema&amp;quot;. Aprendo la finestra seleziona il tab in alto &amp;quot;Opzioni di Avvio&amp;quot; e verifica la presenza della seconda entry in lista, da qui puoi cambiare l'ordine del boot e impostare il timeout sulla schermata di scelta del boot che comparirà al prossimo riavvio.&lt;br /&gt;
&lt;br /&gt;
Se hai bisogno di ulteriori modifiche o se riscontri problemi, puoi sempre tornare al Prompt dei comandi e utilizzare ''bcdedit'' per apportare le modifiche necessarie.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Configurazione_o_ripristino_dual_boot_Windows_11_e_Windows_10_gi%C3%A0_installati&amp;diff=118</id>
		<title>Configurazione o ripristino dual boot Windows 11 e Windows 10 già installati</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Configurazione_o_ripristino_dual_boot_Windows_11_e_Windows_10_gi%C3%A0_installati&amp;diff=118"/>
		<updated>2024-08-29T17:59:37Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;{{Procedure_Windows}}  ==Introduzione== La procedura di seguito è stata testate ed eseguita per il ripristino di un dual boot con Windows 11 e Windows 10 già presenti su due...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Windows}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La procedura di seguito è stata testate ed eseguita per il ripristino di un dual boot con Windows 11 e Windows 10 già presenti su due dischi separatamente e installati su uno stesso PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aggiungere Windows 10 al Boot Loader ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Aprire il Prompt dei Comandi come Amministratore ===&lt;br /&gt;
Clicca con il tasto destro sul pulsante Start e seleziona ''Windows Terminal (Amministratore)'' o ''Prompt dei comandi (Amministratore)''.&lt;br /&gt;
&lt;br /&gt;
=== 2. Creare un Nuovo Boot Entry ===&lt;br /&gt;
Digita il seguente comando per copiare l'entry di Windows 11 e creare una nuova entry per Windows 10:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
C:\Windows\System32&amp;gt;bcdedit /copy {current} /d &amp;quot;Windows 10&amp;quot;&lt;br /&gt;
La voce è stata copiata correttamente in {99e12345-7e74-12ec-1234-cec456456456}.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questo comando copierà l'entry corrente (Windows 11) e dandogli il nuovo nome &amp;quot;Windows 10&amp;quot;. Dopo aver eseguito il comando, annota l'identificatore GUID che verrà restituito, poiché lo userai nei passaggi successivi.&lt;br /&gt;
&lt;br /&gt;
=== 3. Modificare il Nuovo Boot Entry ===&lt;br /&gt;
Ora dovrai impostare il percorso del disco e della partizione per Windows 10. Esegui il seguente comando, sostituendo &amp;lt;nowiki&amp;gt;GUID&amp;lt;/nowiki&amp;gt; con l'identificatore ottenuto nel passaggio precedente e specificando il corretto disco e partizione in cui è installato Windows 10:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
bcdedit /set {GUID} device partition=B:&lt;br /&gt;
bcdedit /set {GUID} path \Windows\System32\winload.exe&lt;br /&gt;
bcdedit /set {GUID} osdevice partition=B:&lt;br /&gt;
bcdedit /set {GUID} description &amp;quot;Windows 10&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assicurati di sostituire B: con la lettera dell'unità corretta in cui è installato Windows 10.&lt;br /&gt;
&lt;br /&gt;
=== 4. Impostare l'Ordine di Visualizzazione ===&lt;br /&gt;
Per assicurarti che l'entry di Windows 10 appaia nel menu di avvio, puoi modificare l'ordine delle voci nel boot loader. Usa questo comando:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
bcdedit /displayorder {GUID} /addlast&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questo comando aggiungerà l'entry di Windows 10 alla fine del menu di avvio.&lt;br /&gt;
&lt;br /&gt;
=== Verifica e Riavvio ===&lt;br /&gt;
Dopo aver eseguito questi passaggi, riavvia il computer. Dovresti vedere un menu di avvio che ti permette di scegliere tra Windows 11 e Windows 10. Se non appare, potrebbe essere necessario controllare le impostazioni del BIOS/UEFI per assicurarti che il boot manager di Windows sia impostato come dispositivo di avvio primario.&lt;br /&gt;
&lt;br /&gt;
Clicca sul pulsante Start di Windows e cerca msconfig, comparirà la voce &amp;quot;Configurazione di Sistema&amp;quot;. Aprendo la finestra seleziona il tab in alto &amp;quot;Opzioni di Avvio&amp;quot; e verifica la presenza della seconda entry in lista, da qui puoi cambiare l'ordine del boot e impostare il timeout sulla schermata di scelta del boot che comparirà al prossimo riavvio.&lt;br /&gt;
&lt;br /&gt;
Se hai bisogno di ulteriori modifiche o se riscontri problemi, puoi sempre tornare al Prompt dei comandi e utilizzare ''bcdedit'' per apportare le modifiche necessarie.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=117</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=117"/>
		<updated>2024-08-29T17:49:11Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Benvenuto}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Titoli disponibili==&lt;br /&gt;
&lt;br /&gt;
===Ambienti Windows===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[Robocopy Esempi di Utilizzo]]&lt;br /&gt;
====Scripting====&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
* [[Configurazione o ripristino dual boot Windows 11 e Windows 10 già installati]]&lt;br /&gt;
&lt;br /&gt;
===Ambienti Linux===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[rsync Esempi di Utilizzo]]&lt;br /&gt;
* [[tar Esempi di Utilizzo]]&lt;br /&gt;
&lt;br /&gt;
====Scripting====&lt;br /&gt;
* [[Aggiungere packages.sury.org repository]]&lt;br /&gt;
* [[Certbot (v. 0.28.0+) renew in Crontab]]&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
* [[Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x]]&lt;br /&gt;
* [[Come configurare il tagging VLAN 802.1Q su Debian 10 (Buster)]]&lt;br /&gt;
&lt;br /&gt;
====Configurazioni====&lt;br /&gt;
* [[Profile, history]]&lt;br /&gt;
* [[Bash, Alias]]&lt;br /&gt;
* [[SSHD]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Come_configurare_il_tagging_VLAN_802.1Q_su_Debian_10_(Buster)&amp;diff=115</id>
		<title>Come configurare il tagging VLAN 802.1Q su Debian 10 (Buster)</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Come_configurare_il_tagging_VLAN_802.1Q_su_Debian_10_(Buster)&amp;diff=115"/>
		<updated>2020-09-14T22:30:50Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Guida rapida alla configurazione per il tagging VLAN 802.1Q su un'interfaccia di rete Linux.&lt;br /&gt;
&lt;br /&gt;
==Aggiungere modulo==&lt;br /&gt;
Aggiungere nel file /etc/modules il modulo &amp;quot;8021q&amp;quot;, semplicemente entrando nella modifica del file e aggiungendo il modulo alla lista.&lt;br /&gt;
&lt;br /&gt;
 :# nano /etc/modules&lt;br /&gt;
&lt;br /&gt;
 :# cat /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 8021q&lt;br /&gt;
&lt;br /&gt;
==Configurazione per l'interfaccia di rete==&lt;br /&gt;
Modificare il file con lo script di configurazione delle interfacce di rete, seguendo questo schema, nell'esempio l'interfaccia di rete utilizzata è chiamata &amp;quot;ens10&amp;quot; andrà chiaramente modificata con il nome dell'interfaccia sul proprio sistema:&lt;br /&gt;
&lt;br /&gt;
 :# nano /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 auto ens10.100&lt;br /&gt;
 iface ens10.100 inet static&lt;br /&gt;
  address 172.16.0.10&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  broadcast 172.16.0.255&lt;br /&gt;
  gateway 172.16.0.1&lt;br /&gt;
  dns-nameservers 8.8.8.8 8.8.4.4&lt;br /&gt;
 vlan-raw-device ens10&lt;br /&gt;
&lt;br /&gt;
Nell'esempio è stata aggiunta una configurazione per l'interfaccia '''ens10''' per la '''VLAN 100''' con indirizzo ip statico '''172.16.0.10'''&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Come_configurare_il_tagging_VLAN_802.1Q_su_Debian_10_(Buster)&amp;diff=114</id>
		<title>Come configurare il tagging VLAN 802.1Q su Debian 10 (Buster)</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Come_configurare_il_tagging_VLAN_802.1Q_su_Debian_10_(Buster)&amp;diff=114"/>
		<updated>2020-09-14T22:28:28Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;==Introduzione== Guida rapida alla configurazione per il tagging VLAN 802.1Q su un'interfaccia di rete Linux.  ==Aggiungere modulo== Aggiungere nel file /etc/modules il modulo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduzione==&lt;br /&gt;
Guida rapida alla configurazione per il tagging VLAN 802.1Q su un'interfaccia di rete Linux.&lt;br /&gt;
&lt;br /&gt;
==Aggiungere modulo==&lt;br /&gt;
Aggiungere nel file /etc/modules il modulo &amp;quot;8021q&amp;quot;, semplicemente entrando nella modifica del file e aggiungendo il modulo alla lista.&lt;br /&gt;
&lt;br /&gt;
 :# nano /etc/modules&lt;br /&gt;
&lt;br /&gt;
 :# cat /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 8021q&lt;br /&gt;
&lt;br /&gt;
==Configurazione per l'interfaccia di rete==&lt;br /&gt;
Modificare il file con lo script di configurazione delle interfacce di rete, seguendo questo schema, nell'esempio l'interfaccia di rete utilizzata è chiamata &amp;quot;ens10&amp;quot; andrà chiaramente modificata con il nome dell'interfaccia sul proprio sistema:&lt;br /&gt;
&lt;br /&gt;
 :# nano /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 auto ens10.100&lt;br /&gt;
 iface ens10.100 inet static&lt;br /&gt;
  address 172.16.0.10&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  broadcast 172.16.0.255&lt;br /&gt;
  gateway 172.16.0.1&lt;br /&gt;
  dns-nameservers 8.8.8.8 8.8.4.4&lt;br /&gt;
 vlan-raw-device ens10&lt;br /&gt;
&lt;br /&gt;
Nell'esempio è stata aggiunta una configurazione per l'interfaccia '''ens10''' per la '''VLAN 100''' con indirizzo ip statico '''172.16.0.10'''&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=113</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=113"/>
		<updated>2020-09-14T22:19:28Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: /* Procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Benvenuto}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Titoli disponibili==&lt;br /&gt;
&lt;br /&gt;
===Ambienti Windows===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[Robocopy Esempi di Utilizzo]]&lt;br /&gt;
====Scripting====&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ambienti Linux===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[rsync Esempi di Utilizzo]]&lt;br /&gt;
* [[tar Esempi di Utilizzo]]&lt;br /&gt;
&lt;br /&gt;
====Scripting====&lt;br /&gt;
* [[Aggiungere packages.sury.org repository]]&lt;br /&gt;
* [[Certbot (v. 0.28.0+) renew in Crontab]]&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
* [[Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x]]&lt;br /&gt;
* [[Come configurare il tagging VLAN 802.1Q su Debian 10 (Buster)]]&lt;br /&gt;
&lt;br /&gt;
====Configurazioni====&lt;br /&gt;
* [[Profile, history]]&lt;br /&gt;
* [[Bash, Alias]]&lt;br /&gt;
* [[SSHD]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=112</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=112"/>
		<updated>2020-07-14T22:05:21Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: /* Sincronizza Orologio di Sistema */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preliminari==&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
===Installazione SSH Server (Opzionale)===&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
===Installazione editor di testo (Opzionale)===&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
===Configurazione hostname===&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
===Cambiare la Shell di Default===&lt;br /&gt;
&lt;br /&gt;
/bin/sh è un collegamento simbolico a /bin/dash, per far funzionare l'installazione di IPSConfig abbiamo bisogno di /bin/bash, non di /bin/dash. Possiamo fare queste seguendo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure dash&lt;br /&gt;
&lt;br /&gt;
 ''Use dash as the default system shell (/bin/sh)?'' &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- No&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se non si effettua tale modifica, l'installazione di ISPConfig fallirà.&lt;br /&gt;
&lt;br /&gt;
===Sincronizza Orologio di Sistema===&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===Installazione e default di OpenSSL===&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
===Utilità varie===&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
==Installazione dei servizi==&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
===Apache e PHP===&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Let's Encrypt===&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
===PureFTPd===&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
===Webalizer e AWStats (Opzionale)===&lt;br /&gt;
Possiamo installare questi due tool nel modo seguente:&lt;br /&gt;
&lt;br /&gt;
 apt install -y webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl&lt;br /&gt;
&lt;br /&gt;
Pariamo &amp;quot;''/etc/cron.d/awstats''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/awstats&lt;br /&gt;
&lt;br /&gt;
e commentiamo tutto il file:&lt;br /&gt;
&lt;br /&gt;
 #MAILTO=root&lt;br /&gt;
 &lt;br /&gt;
 #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/update.sh&lt;br /&gt;
 &lt;br /&gt;
 # Generate static reports:&lt;br /&gt;
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/buildstatic.sh&lt;br /&gt;
&lt;br /&gt;
===Jailkit===&lt;br /&gt;
Jailkit è un insieme di utilità per limitare gli account utente a file specifici utilizzando chroot () e o comandi specifici. Configurare una shell chroot, una shell limitata a un comando specifico o un demone all'interno di una prigione chroot è molto più semplice e può essere automatizzato usando queste utility.&lt;br /&gt;
&lt;br /&gt;
Prepariamo il pacchetto per l'installazione partendo dei sorgenti:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz&lt;br /&gt;
 tar xvfz jailkit-2.20.tar.gz&lt;br /&gt;
 cd jailkit-2.20&lt;br /&gt;
 echo 5 &amp;gt; debian/compat&lt;br /&gt;
 ./debian/rules binary&lt;br /&gt;
&lt;br /&gt;
Ora possiamo installare il Jailkit ''.deb'' come segue:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i jailkit_2.20-1_*.deb&lt;br /&gt;
 rm -rf jailkit-2.20*&lt;br /&gt;
&lt;br /&gt;
===fail2ban===&lt;br /&gt;
Opzionale ma molto raccomandata, l'installazione di fail2ban.&lt;br /&gt;
&lt;br /&gt;
 apt install -y fail2ban&lt;br /&gt;
&lt;br /&gt;
Per abilitare fail2ban al monitoraggio delle operazioni sull'FTP creiamo il file ''/etc/fail2ban/jail.local''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
E nel file il seguente testo&lt;br /&gt;
&lt;br /&gt;
 [pure-ftpd]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = ftp&lt;br /&gt;
 filter = pure-ftpd&lt;br /&gt;
 logpath = /var/log/syslog&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio&lt;br /&gt;
&lt;br /&gt;
 systemctl restart fail2ban&lt;br /&gt;
&lt;br /&gt;
===PHPMyAdmin===&lt;br /&gt;
Dalla versione 10 di Debian, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo dai sorgenti:&lt;br /&gt;
Creiamo la struttura di base:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/share/phpmyadmin&lt;br /&gt;
 mkdir /etc/phpmyadmin&lt;br /&gt;
 mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
 chown -R www-data:www-data /var/lib/phpmyadmin&lt;br /&gt;
 touch /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
&lt;br /&gt;
Spostiamoci nella directory /tmp per scaricare lo zip dei sorgenti per poi posizionarli nel path creatogli&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
&lt;br /&gt;
 tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/&lt;br /&gt;
 rm phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 rm -rf phpMyAdmin-4.9.0.1-all-languages&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo file di configurazione partendo dal file di configurazione d'esempio e poi modifichiamolo nelle parti necessarie:&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 &lt;br /&gt;
Impostiamo una password sicura (blowfish secret) deve essere lunga 32 caratteri&lt;br /&gt;
&lt;br /&gt;
 $cfg['blowfish_secret'] = '&amp;lt;QUi la password. non verrà richiesta&amp;gt;'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;
&lt;br /&gt;
Quindi aggiungiamo una riga per impostare la directory che PHPMyAdmin dovrà usare per archiviare i file temporanei:&lt;br /&gt;
&lt;br /&gt;
 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';&lt;br /&gt;
&lt;br /&gt;
Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/phpmyadmin.conf&lt;br /&gt;
&lt;br /&gt;
Possiamo incollare nel file la seguente configurazione (se sono stati seguiti tutti i passi come da guida, creati gli stessi path con gli stessi nomi altrimenti andrà modificata in base le esigenze):&lt;br /&gt;
&lt;br /&gt;
 # phpMyAdmin default Apache configuration&lt;br /&gt;
 &lt;br /&gt;
 Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
  Options FollowSymLinks&lt;br /&gt;
  DirectoryIndex index.php&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;IfModule mod_php7.c&amp;gt;&lt;br /&gt;
  AddType application/x-httpd-php .php&lt;br /&gt;
 &lt;br /&gt;
  php_flag magic_quotes_gpc Off&lt;br /&gt;
  php_flag track_vars On&lt;br /&gt;
  php_flag register_globals Off&lt;br /&gt;
  php_value include_path .&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Authorize for setup&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule mod_authn_file.c&amp;gt;&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;phpMyAdmin Setup&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Disallow web access to directories that don't need it&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attiviamo la configurazione appena aggiunta e riavviamo Apache.&lt;br /&gt;
&lt;br /&gt;
 a2enconf phpmyadmin&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Nel passaggio successivo, configureremo l'archivio di configurazione phpMyadmin (database).&lt;br /&gt;
&lt;br /&gt;
Accediamo a MariaDB come utente root:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Nella shell MariaDB, creaiamo un nuovo database e un utente per PHPMyAdmin e diamo i privilegi necessari all'utente creato relativamente per il nuovo database creato&lt;br /&gt;
immettiamo una password sicura per l'utente pma che stiamo creando sia nella creazione sia nel settaggio dei Privilegi dell'utente: &lt;br /&gt;
&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE DATABASE phpmyadmin;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE USER 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma';&lt;br /&gt;
 MariaDB [(none)]&amp;gt; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma' WITH GRANT OPTION;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; EXIT;&lt;br /&gt;
&lt;br /&gt;
Infine, carichiamo le tabelle SQL nel database:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p phpmyadmin &amp;lt; /usr/share/phpmyadmin/sql/create_tables.sql&lt;br /&gt;
&lt;br /&gt;
Quello che dobbiamo fare ora è impostare i dettagli dell'utente phpmyadmin nel file di configurazione. Apriamo di nuovo il file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
&lt;br /&gt;
Scorriamo il file fino a trovare alle linee riportate sopra ed editiamole o decommentiamole se necessario, impostando i parametri necessari tra cui utente e password appena creati per phpmyadmi:&lt;br /&gt;
&lt;br /&gt;
 /* User used to manipulate with storage */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['controlhost'] = 'localhost';&lt;br /&gt;
 $cfg['Servers'][$i]['controlport'] = '';&lt;br /&gt;
 $cfg['Servers'][$i]['controluser'] = 'pma';&lt;br /&gt;
 $cfg['Servers'][$i]['controlpass'] = 'passwordperlutentepma';&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* Storage database and tables */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';&lt;br /&gt;
 $cfg['Servers'][$i]['relation'] = 'pma__relation';&lt;br /&gt;
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';&lt;br /&gt;
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';&lt;br /&gt;
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';&lt;br /&gt;
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';&lt;br /&gt;
 $cfg['Servers'][$i]['history'] = 'pma__history';&lt;br /&gt;
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';&lt;br /&gt;
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';&lt;br /&gt;
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';&lt;br /&gt;
 $cfg['Servers'][$i]['recent'] = 'pma__recent';&lt;br /&gt;
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';&lt;br /&gt;
 $cfg['Servers'][$i]['users'] = 'pma__users';&lt;br /&gt;
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';&lt;br /&gt;
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';&lt;br /&gt;
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';&lt;br /&gt;
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';&lt;br /&gt;
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';&lt;br /&gt;
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sono di sopra riportate e segnate in rosso le linee modificate. Sostituisci &amp;quot;passwordperlutentepma&amp;quot; con la password che è stata impostata per l'utente phpmyadmin. Nota che anche &amp;quot;//&amp;quot; davanti alle linee è stato rimosso!.&lt;br /&gt;
&lt;br /&gt;
==ISPConfig==&lt;br /&gt;
Procediamo quindi con l'installazione di ISPConfig. Scarichiamo l'ultima versione stabile rilasciata:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz&lt;br /&gt;
 tar xfz ISPConfig-3-stable.tar.gz&lt;br /&gt;
 cd ispconfig3_install/install/&lt;br /&gt;
&lt;br /&gt;
Lanciamo quindi lo script per eseguire l'installazione:&lt;br /&gt;
&lt;br /&gt;
 php -q install.php&lt;br /&gt;
&lt;br /&gt;
Ciò avvierà il programma di installazione ISPConfig 3. Il programma di installazione configurerà tutti i servizi installati e l'interfaccia web per gestire il nuovo webserver.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; Initial configuration&lt;br /&gt;
 Operating System: Debian 10.0 (Buster) or compatible&lt;br /&gt;
 Following will be a few questions for primary configuration so be careful.&lt;br /&gt;
 Default values are in [brackets] and can be accepted with &amp;lt;ENTER&amp;gt;.&lt;br /&gt;
 Tap in &amp;quot;quit&amp;quot; (without the quotes) to stop the installer.&lt;br /&gt;
&lt;br /&gt;
 Select language (en,de) [en]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Installation mode (standard,expert) [standard]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server hostname [localhost]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server port [3306]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root username [root]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Inseriamo la password dell'utente root per MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL database to create [dbispconfig]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL charset [utf8]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuring Jailkit&lt;br /&gt;
 Configuring Pureftpd&lt;br /&gt;
 Configuring Apache&lt;br /&gt;
 Configuring vlogger&lt;br /&gt;
 Configuring Fail2ban&lt;br /&gt;
 Installing ISPConfig&lt;br /&gt;
 ISPConfig Port [8080]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere invio se vogliamo utilizzare la porta 8080, altrimenti inserire una porta diversa per accedere al pannello di gestione di ISPConfig (ricordiamoci di aprire la porta sul Firewall se ne abbiamo uno sia software che fisico)&amp;lt;/span&amp;gt;&lt;br /&gt;
 Admin password [admin]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;--Inseriamo una password per l'utente Admin con cui utilizzare il Pannello Web di ISPConfig&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Generating RSA private key, 4096 bit long modulus&lt;br /&gt;
 .......................++&lt;br /&gt;
 ................................................................................................................................++&lt;br /&gt;
 e is 65537 (0x10001)&lt;br /&gt;
 You are about to be asked to enter information that will be incorporated&lt;br /&gt;
 into your certificate request.&lt;br /&gt;
 What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
 There are quite a few fields but you can leave some blank&lt;br /&gt;
 For some fields there will be a default value,&lt;br /&gt;
 If you enter '.', the field will be left blank.&lt;br /&gt;
 -----&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter 2 letter country code&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the name of the  state&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter your city&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter company name or press enter&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the server hostname, in my case: server1.example.com&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 An optional company name []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 writing RSA key&lt;br /&gt;
&lt;br /&gt;
 Configuring DBServer&lt;br /&gt;
 Installing ISPConfig crontab&lt;br /&gt;
 no crontab for root&lt;br /&gt;
 Detect IP addresses&lt;br /&gt;
 Restarting services ...&lt;br /&gt;
 Installation completed.&lt;br /&gt;
&lt;br /&gt;
Successivamente è possibile accedere a ISPConfig 3 in http(s)://server1.miodominio.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che è stato scelto durante l'installazione, come l'indirizzo IP da inserire dipende dalla configurazione del server, se vogliamo che risponda un nome a dominio come server1.miodominio.com:8080 andranno chiaramente configurati dei DNS con relativo Record A per il nome a dominio). Accedi con il nome utente admin e la password admin.&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;br /&gt;
[[Category:Apache2]]&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:MariaDB]]&lt;br /&gt;
[[Category:ISPConfig]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=111</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=111"/>
		<updated>2020-03-02T01:14:52Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: /* Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preliminari==&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
===Installazione SSH Server (Opzionale)===&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
===Installazione editor di testo (Opzionale)===&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
===Configurazione hostname===&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
===Sincronizza Orologio di Sistema===&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===Installazione e default di OpenSSL===&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
===Utilità varie===&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
==Installazione dei servizi==&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
===Apache e PHP===&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Let's Encrypt===&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
===PureFTPd===&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
===Webalizer e AWStats (Opzionale)===&lt;br /&gt;
Possiamo installare questi due tool nel modo seguente:&lt;br /&gt;
&lt;br /&gt;
 apt install -y webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl&lt;br /&gt;
&lt;br /&gt;
Pariamo &amp;quot;''/etc/cron.d/awstats''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/awstats&lt;br /&gt;
&lt;br /&gt;
e commentiamo tutto il file:&lt;br /&gt;
&lt;br /&gt;
 #MAILTO=root&lt;br /&gt;
 &lt;br /&gt;
 #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/update.sh&lt;br /&gt;
 &lt;br /&gt;
 # Generate static reports:&lt;br /&gt;
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/buildstatic.sh&lt;br /&gt;
&lt;br /&gt;
===Jailkit===&lt;br /&gt;
Jailkit è un insieme di utilità per limitare gli account utente a file specifici utilizzando chroot () e o comandi specifici. Configurare una shell chroot, una shell limitata a un comando specifico o un demone all'interno di una prigione chroot è molto più semplice e può essere automatizzato usando queste utility.&lt;br /&gt;
&lt;br /&gt;
Prepariamo il pacchetto per l'installazione partendo dei sorgenti:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz&lt;br /&gt;
 tar xvfz jailkit-2.20.tar.gz&lt;br /&gt;
 cd jailkit-2.20&lt;br /&gt;
 echo 5 &amp;gt; debian/compat&lt;br /&gt;
 ./debian/rules binary&lt;br /&gt;
&lt;br /&gt;
Ora possiamo installare il Jailkit ''.deb'' come segue:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i jailkit_2.20-1_*.deb&lt;br /&gt;
 rm -rf jailkit-2.20*&lt;br /&gt;
&lt;br /&gt;
===fail2ban===&lt;br /&gt;
Opzionale ma molto raccomandata, l'installazione di fail2ban.&lt;br /&gt;
&lt;br /&gt;
 apt install -y fail2ban&lt;br /&gt;
&lt;br /&gt;
Per abilitare fail2ban al monitoraggio delle operazioni sull'FTP creiamo il file ''/etc/fail2ban/jail.local''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
E nel file il seguente testo&lt;br /&gt;
&lt;br /&gt;
 [pure-ftpd]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = ftp&lt;br /&gt;
 filter = pure-ftpd&lt;br /&gt;
 logpath = /var/log/syslog&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio&lt;br /&gt;
&lt;br /&gt;
 systemctl restart fail2ban&lt;br /&gt;
&lt;br /&gt;
===PHPMyAdmin===&lt;br /&gt;
Dalla versione 10 di Debian, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo dai sorgenti:&lt;br /&gt;
Creiamo la struttura di base:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/share/phpmyadmin&lt;br /&gt;
 mkdir /etc/phpmyadmin&lt;br /&gt;
 mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
 chown -R www-data:www-data /var/lib/phpmyadmin&lt;br /&gt;
 touch /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
&lt;br /&gt;
Spostiamoci nella directory /tmp per scaricare lo zip dei sorgenti per poi posizionarli nel path creatogli&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
&lt;br /&gt;
 tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/&lt;br /&gt;
 rm phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 rm -rf phpMyAdmin-4.9.0.1-all-languages&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo file di configurazione partendo dal file di configurazione d'esempio e poi modifichiamolo nelle parti necessarie:&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 &lt;br /&gt;
Impostiamo una password sicura (blowfish secret) deve essere lunga 32 caratteri&lt;br /&gt;
&lt;br /&gt;
 $cfg['blowfish_secret'] = '&amp;lt;QUi la password. non verrà richiesta&amp;gt;'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;
&lt;br /&gt;
Quindi aggiungiamo una riga per impostare la directory che PHPMyAdmin dovrà usare per archiviare i file temporanei:&lt;br /&gt;
&lt;br /&gt;
 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';&lt;br /&gt;
&lt;br /&gt;
Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/phpmyadmin.conf&lt;br /&gt;
&lt;br /&gt;
Possiamo incollare nel file la seguente configurazione (se sono stati seguiti tutti i passi come da guida, creati gli stessi path con gli stessi nomi altrimenti andrà modificata in base le esigenze):&lt;br /&gt;
&lt;br /&gt;
 # phpMyAdmin default Apache configuration&lt;br /&gt;
 &lt;br /&gt;
 Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
  Options FollowSymLinks&lt;br /&gt;
  DirectoryIndex index.php&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;IfModule mod_php7.c&amp;gt;&lt;br /&gt;
  AddType application/x-httpd-php .php&lt;br /&gt;
 &lt;br /&gt;
  php_flag magic_quotes_gpc Off&lt;br /&gt;
  php_flag track_vars On&lt;br /&gt;
  php_flag register_globals Off&lt;br /&gt;
  php_value include_path .&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Authorize for setup&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule mod_authn_file.c&amp;gt;&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;phpMyAdmin Setup&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Disallow web access to directories that don't need it&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attiviamo la configurazione appena aggiunta e riavviamo Apache.&lt;br /&gt;
&lt;br /&gt;
 a2enconf phpmyadmin&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Nel passaggio successivo, configureremo l'archivio di configurazione phpMyadmin (database).&lt;br /&gt;
&lt;br /&gt;
Accediamo a MariaDB come utente root:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Nella shell MariaDB, creaiamo un nuovo database e un utente per PHPMyAdmin e diamo i privilegi necessari all'utente creato relativamente per il nuovo database creato&lt;br /&gt;
immettiamo una password sicura per l'utente pma che stiamo creando sia nella creazione sia nel settaggio dei Privilegi dell'utente: &lt;br /&gt;
&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE DATABASE phpmyadmin;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE USER 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma';&lt;br /&gt;
 MariaDB [(none)]&amp;gt; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma' WITH GRANT OPTION;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; EXIT;&lt;br /&gt;
&lt;br /&gt;
Infine, carichiamo le tabelle SQL nel database:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p phpmyadmin &amp;lt; /usr/share/phpmyadmin/sql/create_tables.sql&lt;br /&gt;
&lt;br /&gt;
Quello che dobbiamo fare ora è impostare i dettagli dell'utente phpmyadmin nel file di configurazione. Apriamo di nuovo il file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
&lt;br /&gt;
Scorriamo il file fino a trovare alle linee riportate sopra ed editiamole o decommentiamole se necessario, impostando i parametri necessari tra cui utente e password appena creati per phpmyadmi:&lt;br /&gt;
&lt;br /&gt;
 /* User used to manipulate with storage */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['controlhost'] = 'localhost';&lt;br /&gt;
 $cfg['Servers'][$i]['controlport'] = '';&lt;br /&gt;
 $cfg['Servers'][$i]['controluser'] = 'pma';&lt;br /&gt;
 $cfg['Servers'][$i]['controlpass'] = 'passwordperlutentepma';&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* Storage database and tables */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';&lt;br /&gt;
 $cfg['Servers'][$i]['relation'] = 'pma__relation';&lt;br /&gt;
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';&lt;br /&gt;
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';&lt;br /&gt;
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';&lt;br /&gt;
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';&lt;br /&gt;
 $cfg['Servers'][$i]['history'] = 'pma__history';&lt;br /&gt;
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';&lt;br /&gt;
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';&lt;br /&gt;
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';&lt;br /&gt;
 $cfg['Servers'][$i]['recent'] = 'pma__recent';&lt;br /&gt;
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';&lt;br /&gt;
 $cfg['Servers'][$i]['users'] = 'pma__users';&lt;br /&gt;
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';&lt;br /&gt;
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';&lt;br /&gt;
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';&lt;br /&gt;
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';&lt;br /&gt;
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';&lt;br /&gt;
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sono di sopra riportate e segnate in rosso le linee modificate. Sostituisci &amp;quot;passwordperlutentepma&amp;quot; con la password che è stata impostata per l'utente phpmyadmin. Nota che anche &amp;quot;//&amp;quot; davanti alle linee è stato rimosso!.&lt;br /&gt;
&lt;br /&gt;
==ISPConfig==&lt;br /&gt;
Procediamo quindi con l'installazione di ISPConfig. Scarichiamo l'ultima versione stabile rilasciata:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz&lt;br /&gt;
 tar xfz ISPConfig-3-stable.tar.gz&lt;br /&gt;
 cd ispconfig3_install/install/&lt;br /&gt;
&lt;br /&gt;
Lanciamo quindi lo script per eseguire l'installazione:&lt;br /&gt;
&lt;br /&gt;
 php -q install.php&lt;br /&gt;
&lt;br /&gt;
Ciò avvierà il programma di installazione ISPConfig 3. Il programma di installazione configurerà tutti i servizi installati e l'interfaccia web per gestire il nuovo webserver.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; Initial configuration&lt;br /&gt;
 Operating System: Debian 10.0 (Buster) or compatible&lt;br /&gt;
 Following will be a few questions for primary configuration so be careful.&lt;br /&gt;
 Default values are in [brackets] and can be accepted with &amp;lt;ENTER&amp;gt;.&lt;br /&gt;
 Tap in &amp;quot;quit&amp;quot; (without the quotes) to stop the installer.&lt;br /&gt;
&lt;br /&gt;
 Select language (en,de) [en]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Installation mode (standard,expert) [standard]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server hostname [localhost]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server port [3306]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root username [root]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Inseriamo la password dell'utente root per MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL database to create [dbispconfig]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL charset [utf8]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuring Jailkit&lt;br /&gt;
 Configuring Pureftpd&lt;br /&gt;
 Configuring Apache&lt;br /&gt;
 Configuring vlogger&lt;br /&gt;
 Configuring Fail2ban&lt;br /&gt;
 Installing ISPConfig&lt;br /&gt;
 ISPConfig Port [8080]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere invio se vogliamo utilizzare la porta 8080, altrimenti inserire una porta diversa per accedere al pannello di gestione di ISPConfig (ricordiamoci di aprire la porta sul Firewall se ne abbiamo uno sia software che fisico)&amp;lt;/span&amp;gt;&lt;br /&gt;
 Admin password [admin]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;--Inseriamo una password per l'utente Admin con cui utilizzare il Pannello Web di ISPConfig&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Generating RSA private key, 4096 bit long modulus&lt;br /&gt;
 .......................++&lt;br /&gt;
 ................................................................................................................................++&lt;br /&gt;
 e is 65537 (0x10001)&lt;br /&gt;
 You are about to be asked to enter information that will be incorporated&lt;br /&gt;
 into your certificate request.&lt;br /&gt;
 What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
 There are quite a few fields but you can leave some blank&lt;br /&gt;
 For some fields there will be a default value,&lt;br /&gt;
 If you enter '.', the field will be left blank.&lt;br /&gt;
 -----&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter 2 letter country code&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the name of the  state&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter your city&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter company name or press enter&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the server hostname, in my case: server1.example.com&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 An optional company name []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 writing RSA key&lt;br /&gt;
&lt;br /&gt;
 Configuring DBServer&lt;br /&gt;
 Installing ISPConfig crontab&lt;br /&gt;
 no crontab for root&lt;br /&gt;
 Detect IP addresses&lt;br /&gt;
 Restarting services ...&lt;br /&gt;
 Installation completed.&lt;br /&gt;
&lt;br /&gt;
Successivamente è possibile accedere a ISPConfig 3 in http(s)://server1.miodominio.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che è stato scelto durante l'installazione, come l'indirizzo IP da inserire dipende dalla configurazione del server, se vogliamo che risponda un nome a dominio come server1.miodominio.com:8080 andranno chiaramente configurati dei DNS con relativo Record A per il nome a dominio). Accedi con il nome utente admin e la password admin.&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;br /&gt;
[[Category:Apache2]]&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:MariaDB]]&lt;br /&gt;
[[Category:ISPConfig]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=110</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=110"/>
		<updated>2020-03-02T01:10:36Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: /* Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preliminari==&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
===Installazione SSH Server (Opzionale)===&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
===Installazione editor di testo (Opzionale)===&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
===Configurazione hostname===&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
===Sincronizza Orologio di Sistema===&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===Installazione e default di OpenSSL===&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
===Utilità varie===&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
==Installazione dei servizi==&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
===Apache e PHP===&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Let's Encrypt===&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
===PureFTPd===&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
===Webalizer e AWStats (Opzionale)===&lt;br /&gt;
Possiamo installare questi due tool nel modo seguente:&lt;br /&gt;
&lt;br /&gt;
 apt install -y webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl&lt;br /&gt;
&lt;br /&gt;
Pariamo &amp;quot;''/etc/cron.d/awstats''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/awstats&lt;br /&gt;
&lt;br /&gt;
e commentiamo tutto il file:&lt;br /&gt;
&lt;br /&gt;
 #MAILTO=root&lt;br /&gt;
 &lt;br /&gt;
 #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/update.sh&lt;br /&gt;
 &lt;br /&gt;
 # Generate static reports:&lt;br /&gt;
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/buildstatic.sh&lt;br /&gt;
&lt;br /&gt;
===Jailkit===&lt;br /&gt;
Jailkit è un insieme di utilità per limitare gli account utente a file specifici utilizzando chroot () e o comandi specifici. Configurare una shell chroot, una shell limitata a un comando specifico o un demone all'interno di una prigione chroot è molto più semplice e può essere automatizzato usando queste utility.&lt;br /&gt;
&lt;br /&gt;
Prepariamo il pacchetto per l'installazione partendo dei sorgenti:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz&lt;br /&gt;
 tar xvfz jailkit-2.20.tar.gz&lt;br /&gt;
 cd jailkit-2.20&lt;br /&gt;
 echo 5 &amp;gt; debian/compat&lt;br /&gt;
 ./debian/rules binary&lt;br /&gt;
&lt;br /&gt;
Ora possiamo installare il Jailkit ''.deb'' come segue:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i jailkit_2.20-1_*.deb&lt;br /&gt;
 rm -rf jailkit-2.20*&lt;br /&gt;
&lt;br /&gt;
===fail2ban===&lt;br /&gt;
Opzionale ma molto raccomandata, l'installazione di fail2ban.&lt;br /&gt;
&lt;br /&gt;
 apt install -y fail2ban&lt;br /&gt;
&lt;br /&gt;
Per abilitare fail2ban al monitoraggio delle operazioni sull'FTP creiamo il file ''/etc/fail2ban/jail.local''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
E nel file il seguente testo&lt;br /&gt;
&lt;br /&gt;
 [pure-ftpd]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = ftp&lt;br /&gt;
 filter = pure-ftpd&lt;br /&gt;
 logpath = /var/log/syslog&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio&lt;br /&gt;
&lt;br /&gt;
 systemctl restart fail2ban&lt;br /&gt;
&lt;br /&gt;
===PHPMyAdmin===&lt;br /&gt;
Dalla versione 10 di Debian, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo dai sorgenti:&lt;br /&gt;
Creiamo la struttura di base:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/share/phpmyadmin&lt;br /&gt;
 mkdir /etc/phpmyadmin&lt;br /&gt;
 mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
 chown -R www-data:www-data /var/lib/phpmyadmin&lt;br /&gt;
 touch /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
&lt;br /&gt;
Spostiamoci nella directory /tmp per scaricare lo zip dei sorgenti per poi posizionarli nel path creatogli&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
&lt;br /&gt;
 tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/&lt;br /&gt;
 rm phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 rm -rf phpMyAdmin-4.9.0.1-all-languages&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo file di configurazione partendo dal file di configurazione d'esempio e poi modifichiamolo nelle parti necessarie:&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 &lt;br /&gt;
Impostiamo una password sicura (blowfish secret) deve essere lunga 32 caratteri&lt;br /&gt;
&lt;br /&gt;
 $cfg['blowfish_secret'] = '&amp;lt;QUi la password. non verrà richiesta&amp;gt;'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;
&lt;br /&gt;
Quindi aggiungiamo una riga per impostare la directory che PHPMyAdmin dovrà usare per archiviare i file temporanei:&lt;br /&gt;
&lt;br /&gt;
 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';&lt;br /&gt;
&lt;br /&gt;
Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/phpmyadmin.conf&lt;br /&gt;
&lt;br /&gt;
Possiamo incollare nel file la seguente configurazione (se sono stati seguiti tutti i passi come da guida, creati gli stessi path con gli stessi nomi altrimenti andrà modificata in base le esigenze):&lt;br /&gt;
&lt;br /&gt;
 # phpMyAdmin default Apache configuration&lt;br /&gt;
 &lt;br /&gt;
 Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
  Options FollowSymLinks&lt;br /&gt;
  DirectoryIndex index.php&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;IfModule mod_php7.c&amp;gt;&lt;br /&gt;
  AddType application/x-httpd-php .php&lt;br /&gt;
 &lt;br /&gt;
  php_flag magic_quotes_gpc Off&lt;br /&gt;
  php_flag track_vars On&lt;br /&gt;
  php_flag register_globals Off&lt;br /&gt;
  php_value include_path .&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Authorize for setup&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule mod_authn_file.c&amp;gt;&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;phpMyAdmin Setup&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Disallow web access to directories that don't need it&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attiviamo la configurazione appena aggiunta e riavviamo Apache.&lt;br /&gt;
&lt;br /&gt;
 a2enconf phpmyadmin&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Nel passaggio successivo, configureremo l'archivio di configurazione phpMyadmin (database).&lt;br /&gt;
&lt;br /&gt;
Accediamo a MariaDB come utente root:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Nella shell MariaDB, creaiamo un nuovo database e un utente per PHPMyAdmin e diamo i privilegi necessari all'utente creato relativamente per il nuovo database creato&lt;br /&gt;
immettiamo una password sicura per l'utente pma che stiamo creando sia nella creazione sia nel settaggio dei Privilegi dell'utente: &lt;br /&gt;
&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE DATABASE phpmyadmin;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE USER 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma';&lt;br /&gt;
 MariaDB [(none)]&amp;gt; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma' WITH GRANT OPTION;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; EXIT;&lt;br /&gt;
&lt;br /&gt;
Infine, carichiamo le tabelle SQL nel database:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p phpmyadmin &amp;lt; /usr/share/phpmyadmin/sql/create_tables.sql&lt;br /&gt;
&lt;br /&gt;
Quello che dobbiamo fare ora è impostare i dettagli dell'utente phpmyadmin nel file di configurazione. Apriamo di nuovo il file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
&lt;br /&gt;
Scorriamo il file fino a trovare alle linee riportate sopra ed editiamole o decommentiamole se necessario, impostando i parametri necessari tra cui utente e password appena creati per phpmyadmi:&lt;br /&gt;
&lt;br /&gt;
 /* User used to manipulate with storage */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['controlhost'] = 'localhost';&lt;br /&gt;
 $cfg['Servers'][$i]['controlport'] = '';&lt;br /&gt;
 $cfg['Servers'][$i]['controluser'] = 'pma';&lt;br /&gt;
 $cfg['Servers'][$i]['controlpass'] = 'passwordperlutentepma';&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* Storage database and tables */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';&lt;br /&gt;
 $cfg['Servers'][$i]['relation'] = 'pma__relation';&lt;br /&gt;
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';&lt;br /&gt;
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';&lt;br /&gt;
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';&lt;br /&gt;
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';&lt;br /&gt;
 $cfg['Servers'][$i]['history'] = 'pma__history';&lt;br /&gt;
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';&lt;br /&gt;
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';&lt;br /&gt;
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';&lt;br /&gt;
 $cfg['Servers'][$i]['recent'] = 'pma__recent';&lt;br /&gt;
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';&lt;br /&gt;
 $cfg['Servers'][$i]['users'] = 'pma__users';&lt;br /&gt;
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';&lt;br /&gt;
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';&lt;br /&gt;
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';&lt;br /&gt;
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';&lt;br /&gt;
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';&lt;br /&gt;
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sono di sopra riportate e segnate in rosso le linee modificate. Sostituisci &amp;quot;passwordperlutentepma&amp;quot; con la password che è stata impostata per l'utente phpmyadmin. Nota che anche &amp;quot;//&amp;quot; davanti alle linee è stato rimosso!.&lt;br /&gt;
&lt;br /&gt;
==ISPConfig==&lt;br /&gt;
Procediamo quindi con l'installazione di ISPConfig. Scarichiamo l'ultima versione stabile rilasciata:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz&lt;br /&gt;
 tar xfz ISPConfig-3-stable.tar.gz&lt;br /&gt;
 cd ispconfig3_install/install/&lt;br /&gt;
&lt;br /&gt;
Lanciamo quindi lo script per eseguire l'installazione:&lt;br /&gt;
&lt;br /&gt;
 php -q install.php&lt;br /&gt;
&lt;br /&gt;
Ciò avvierà il programma di installazione ISPConfig 3. Il programma di installazione configurerà tutti i servizi installati e l'interfaccia web per gestire il nuovo webserver.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; Initial configuration&lt;br /&gt;
 Operating System: Debian 10.0 (Buster) or compatible&lt;br /&gt;
 Following will be a few questions for primary configuration so be careful.&lt;br /&gt;
 Default values are in [brackets] and can be accepted with &amp;lt;ENTER&amp;gt;.&lt;br /&gt;
 Tap in &amp;quot;quit&amp;quot; (without the quotes) to stop the installer.&lt;br /&gt;
&lt;br /&gt;
 Select language (en,de) [en]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Installation mode (standard,expert) [standard]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server hostname [localhost]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server port [3306]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root username [root]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Inseriamo la password dell'utente root per MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL database to create [dbispconfig]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL charset [utf8]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuring Jailkit&lt;br /&gt;
 Configuring Pureftpd&lt;br /&gt;
 Configuring Apache&lt;br /&gt;
 Configuring vlogger&lt;br /&gt;
 Configuring Fail2ban&lt;br /&gt;
 Installing ISPConfig&lt;br /&gt;
 ISPConfig Port [8080]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere invio se vogliamo utilizzare la porta 8080, altrimenti inserire una porta diversa per accedere al pannello di gestione di ISPConfig (ricordiamoci di aprire la porta sul Firewall se ne abbiamo uno sia software che fisico)&amp;lt;/span&amp;gt;&lt;br /&gt;
 Admin password [admin]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;--Inseriamo una password per l'utente Admin con cui utilizzare il Pannello Web di ISPConfig&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Generating RSA private key, 4096 bit long modulus&lt;br /&gt;
 .......................++&lt;br /&gt;
 ................................................................................................................................++&lt;br /&gt;
 e is 65537 (0x10001)&lt;br /&gt;
 You are about to be asked to enter information that will be incorporated&lt;br /&gt;
 into your certificate request.&lt;br /&gt;
 What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
 There are quite a few fields but you can leave some blank&lt;br /&gt;
 For some fields there will be a default value,&lt;br /&gt;
 If you enter '.', the field will be left blank.&lt;br /&gt;
 -----&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter 2 letter country code&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the name of the  state&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter your city&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter company name or press enter&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the server hostname, in my case: server1.example.com&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 An optional company name []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 writing RSA key&lt;br /&gt;
&lt;br /&gt;
 Configuring DBServer&lt;br /&gt;
 Installing ISPConfig crontab&lt;br /&gt;
 no crontab for root&lt;br /&gt;
 Detect IP addresses&lt;br /&gt;
 Restarting services ...&lt;br /&gt;
 Installation completed.&lt;br /&gt;
&lt;br /&gt;
Successivamente è possibile accedere a ISPConfig 3 in http(s)://server1.miodominio.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che è stato scelto durante l'installazione, come l'indirizzo IP da inserire dipende dalla configurazione del server, se vogliamo che risponda un nome a dominio come server1.miodominio.com:8080 andranno chiaramente configurati dei DNS con relativo Record A per il nome a dominio). Accedi con il nome utente admin e la password admin.&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;br /&gt;
[[Category:Apache2]]&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:MariaDB]]&lt;br /&gt;
[[Category:ISPConfig]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=109</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=109"/>
		<updated>2020-03-02T01:10:01Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: /* Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preliminari==&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
===Installazione SSH Server (Opzionale)===&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
===Installazione editor di testo (Opzionale)===&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
===Configurazione hostname===&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
===Sincronizza Orologio di Sistema===&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===Installazione e default di OpenSSL===&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
===Utilità varie===&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
==Installazione dei servizi==&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
===Apache e PHP===&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Let's Encrypt===&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
===PureFTPd===&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
===Webalizer e AWStats (Opzionale)===&lt;br /&gt;
Possiamo installare questi due tool nel modo seguente:&lt;br /&gt;
&lt;br /&gt;
 apt install -y webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl&lt;br /&gt;
&lt;br /&gt;
Pariamo &amp;quot;''/etc/cron.d/awstats''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/awstats&lt;br /&gt;
&lt;br /&gt;
e commentiamo tutto il file:&lt;br /&gt;
&lt;br /&gt;
 #MAILTO=root&lt;br /&gt;
 &lt;br /&gt;
 #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/update.sh&lt;br /&gt;
 &lt;br /&gt;
 # Generate static reports:&lt;br /&gt;
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/buildstatic.sh&lt;br /&gt;
&lt;br /&gt;
===Jailkit===&lt;br /&gt;
Jailkit è un insieme di utilità per limitare gli account utente a file specifici utilizzando chroot () e o comandi specifici. Configurare una shell chroot, una shell limitata a un comando specifico o un demone all'interno di una prigione chroot è molto più semplice e può essere automatizzato usando queste utility.&lt;br /&gt;
&lt;br /&gt;
Prepariamo il pacchetto per l'installazione partendo dei sorgenti:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz&lt;br /&gt;
 tar xvfz jailkit-2.20.tar.gz&lt;br /&gt;
 cd jailkit-2.20&lt;br /&gt;
 echo 5 &amp;gt; debian/compat&lt;br /&gt;
 ./debian/rules binary&lt;br /&gt;
&lt;br /&gt;
Ora possiamo installare il Jailkit ''.deb'' come segue:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i jailkit_2.20-1_*.deb&lt;br /&gt;
 rm -rf jailkit-2.20*&lt;br /&gt;
&lt;br /&gt;
===fail2ban===&lt;br /&gt;
Opzionale ma molto raccomandata, l'installazione di fail2ban.&lt;br /&gt;
&lt;br /&gt;
 apt install -y fail2ban&lt;br /&gt;
&lt;br /&gt;
Per abilitare fail2ban al monitoraggio delle operazioni sull'FTP creiamo il file ''/etc/fail2ban/jail.local''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
E nel file il seguente testo&lt;br /&gt;
&lt;br /&gt;
 [pure-ftpd]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = ftp&lt;br /&gt;
 filter = pure-ftpd&lt;br /&gt;
 logpath = /var/log/syslog&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio&lt;br /&gt;
&lt;br /&gt;
 systemctl restart fail2ban&lt;br /&gt;
&lt;br /&gt;
===PHPMyAdmin===&lt;br /&gt;
Dalla versione 10 di Debian, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo dai sorgenti:&lt;br /&gt;
Creiamo la struttura di base:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/share/phpmyadmin&lt;br /&gt;
 mkdir /etc/phpmyadmin&lt;br /&gt;
 mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
 chown -R www-data:www-data /var/lib/phpmyadmin&lt;br /&gt;
 touch /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
&lt;br /&gt;
Spostiamoci nella directory /tmp per scaricare lo zip dei sorgenti per poi posizionarli nel path creatogli&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
&lt;br /&gt;
 tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/&lt;br /&gt;
 rm phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 rm -rf phpMyAdmin-4.9.0.1-all-languages&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo file di configurazione partendo dal file di configurazione d'esempio e poi modifichiamolo nelle parti necessarie:&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 &lt;br /&gt;
Impostiamo una password sicura (blowfish secret) deve essere lunga 32 caratteri&lt;br /&gt;
&lt;br /&gt;
 $cfg['blowfish_secret'] = '&amp;lt;QUi la password. non verrà richiesta&amp;gt;'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;
&lt;br /&gt;
Quindi aggiungiamo una riga per impostare la directory che PHPMyAdmin dovrà usare per archiviare i file temporanei:&lt;br /&gt;
&lt;br /&gt;
 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';&lt;br /&gt;
&lt;br /&gt;
Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/phpmyadmin.conf&lt;br /&gt;
&lt;br /&gt;
Possiamo incollare nel file la seguente configurazione (se sono stati seguiti tutti i passi come da guida, creati gli stessi path con gli stessi nomi altrimenti andrà modificata in base le esigenze):&lt;br /&gt;
&lt;br /&gt;
 # phpMyAdmin default Apache configuration&lt;br /&gt;
 &lt;br /&gt;
 Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
  Options FollowSymLinks&lt;br /&gt;
  DirectoryIndex index.php&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;IfModule mod_php7.c&amp;gt;&lt;br /&gt;
  AddType application/x-httpd-php .php&lt;br /&gt;
 &lt;br /&gt;
  php_flag magic_quotes_gpc Off&lt;br /&gt;
  php_flag track_vars On&lt;br /&gt;
  php_flag register_globals Off&lt;br /&gt;
  php_value include_path .&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Authorize for setup&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule mod_authn_file.c&amp;gt;&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;phpMyAdmin Setup&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Disallow web access to directories that don't need it&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attiviamo la configurazione appena aggiunta e riavviamo Apache.&lt;br /&gt;
&lt;br /&gt;
 a2enconf phpmyadmin&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Nel passaggio successivo, configureremo l'archivio di configurazione phpMyadmin (database).&lt;br /&gt;
&lt;br /&gt;
Accediamo a MariaDB come utente root:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Nella shell MariaDB, creaiamo un nuovo database e un utente per PHPMyAdmin e diamo i privilegi necessari all'utente creato relativamente per il nuovo database creato&lt;br /&gt;
immettiamo una password sicura per l'utente pma che stiamo creando sia nella creazione sia nel settaggio dei Privilegi dell'utente: &lt;br /&gt;
&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE DATABASE phpmyadmin;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE USER 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma';&lt;br /&gt;
 MariaDB [(none)]&amp;gt; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma' WITH GRANT OPTION;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; EXIT;&lt;br /&gt;
&lt;br /&gt;
Infine, carichiamo le tabelle SQL nel database:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p phpmyadmin &amp;lt; /usr/share/phpmyadmin/sql/create_tables.sql&lt;br /&gt;
&lt;br /&gt;
Quello che dobbiamo fare ora è impostare i dettagli dell'utente phpmyadmin nel file di configurazione. Apriamo di nuovo il file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
&lt;br /&gt;
Scorriamo il file fino a trovare alle linee riportate sopra ed editiamole o decommentiamole se necessario, impostando i parametri necessari tra cui utente e password appena creati per phpmyadmi:&lt;br /&gt;
&lt;br /&gt;
 /* User used to manipulate with storage */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['controlhost'] = 'localhost';&lt;br /&gt;
 $cfg['Servers'][$i]['controlport'] = '';&lt;br /&gt;
 $cfg['Servers'][$i]['controluser'] = 'pma';&lt;br /&gt;
 $cfg['Servers'][$i]['controlpass'] = 'passwordperlutentepma';&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* Storage database and tables */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';&lt;br /&gt;
 $cfg['Servers'][$i]['relation'] = 'pma__relation';&lt;br /&gt;
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';&lt;br /&gt;
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';&lt;br /&gt;
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';&lt;br /&gt;
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';&lt;br /&gt;
 $cfg['Servers'][$i]['history'] = 'pma__history';&lt;br /&gt;
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';&lt;br /&gt;
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';&lt;br /&gt;
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';&lt;br /&gt;
 $cfg['Servers'][$i]['recent'] = 'pma__recent';&lt;br /&gt;
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';&lt;br /&gt;
 $cfg['Servers'][$i]['users'] = 'pma__users';&lt;br /&gt;
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';&lt;br /&gt;
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';&lt;br /&gt;
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';&lt;br /&gt;
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';&lt;br /&gt;
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';&lt;br /&gt;
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sono di sopra riportate e segnate in rosso le linee modificate. Sostituisci &amp;quot;passwordperlutentepma&amp;quot; con la password che è stata impostata per l'utente phpmyadmin. Nota che anche &amp;quot;//&amp;quot; davanti alle linee è stato rimosso!.&lt;br /&gt;
&lt;br /&gt;
==ISPConfig==&lt;br /&gt;
Procediamo quindi con l'installazione di ISPConfig. Scarichiamo l'ultima versione stabile rilasciata:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz&lt;br /&gt;
 tar xfz ISPConfig-3-stable.tar.gz&lt;br /&gt;
 cd ispconfig3_install/install/&lt;br /&gt;
&lt;br /&gt;
Lanciamo quindi lo script per eseguire l'installazione:&lt;br /&gt;
&lt;br /&gt;
 php -q install.php&lt;br /&gt;
&lt;br /&gt;
Ciò avvierà il programma di installazione ISPConfig 3. Il programma di installazione configurerà tutti i servizi installati e l'interfaccia web per gestire il nuovo webserver.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; Initial configuration&lt;br /&gt;
 Operating System: Debian 10.0 (Buster) or compatible&lt;br /&gt;
 Following will be a few questions for primary configuration so be careful.&lt;br /&gt;
 Default values are in [brackets] and can be accepted with &amp;lt;ENTER&amp;gt;.&lt;br /&gt;
 Tap in &amp;quot;quit&amp;quot; (without the quotes) to stop the installer.&lt;br /&gt;
&lt;br /&gt;
 Select language (en,de) [en]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Installation mode (standard,expert) [standard]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server hostname [localhost]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server port [3306]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root username [root]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Inseriamo la password dell'utente root per MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL database to create [dbispconfig]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL charset [utf8]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuring Jailkit&lt;br /&gt;
 Configuring Pureftpd&lt;br /&gt;
 Configuring Apache&lt;br /&gt;
 Configuring vlogger&lt;br /&gt;
 Configuring Fail2ban&lt;br /&gt;
 Installing ISPConfig&lt;br /&gt;
 ISPConfig Port [8080]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere invio se vogliamo utilizzare la porta 8080, altrimenti inserire una porta diversa per accedere al pannello di gestione di ISPConfig (ricordiamoci di aprire la porta sul Firewall se ne abbiamo uno sia software che fisico)&amp;lt;/span&amp;gt;&lt;br /&gt;
 Admin password [admin]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;--Inseriamo una password per l'utente Admin con cui utilizzare il Pannello Web di ISPConfig&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Generating RSA private key, 4096 bit long modulus&lt;br /&gt;
 .......................++&lt;br /&gt;
 ................................................................................................................................++&lt;br /&gt;
 e is 65537 (0x10001)&lt;br /&gt;
 You are about to be asked to enter information that will be incorporated&lt;br /&gt;
 into your certificate request.&lt;br /&gt;
 What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
 There are quite a few fields but you can leave some blank&lt;br /&gt;
 For some fields there will be a default value,&lt;br /&gt;
 If you enter '.', the field will be left blank.&lt;br /&gt;
 -----&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter 2 letter country code&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the name of the  state&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter your city&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter company name or press enter&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the server hostname, in my case: server1.example.com&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 An optional company name []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 writing RSA key&lt;br /&gt;
&lt;br /&gt;
 Configuring DBServer&lt;br /&gt;
 Installing ISPConfig crontab&lt;br /&gt;
 no crontab for root&lt;br /&gt;
 Detect IP addresses&lt;br /&gt;
 Restarting services ...&lt;br /&gt;
 Installation completed.&lt;br /&gt;
&lt;br /&gt;
Successivamente è possibile accedere a ISPConfig 3 in http(s)://server1.miodominio.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che è stato scelto durante l'installazione, come l'indirizzo IP da inserire dipende dalla configurazione del server, se vogliamo che risponda un nome a dominio come server1.miodominio.com:8080 andranno chiaramente configurati dei DNS con relativo Record A per il nome a dominio). Accedi con il nome utente admin e la password admin.&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;br /&gt;
[[Category:Apache2]]&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:MariaDB]]&lt;br /&gt;
[[Category:ISPConfig]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=108</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=108"/>
		<updated>2020-01-24T20:31:02Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Get-Start MediaWiki|Get-Start MediaWiki&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
** Speciale:TutteLePagine|Lista Completa&lt;br /&gt;
** MediaWiki:Sidebar|Edita questa Barra&lt;br /&gt;
&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* SEARCH&lt;br /&gt;
* LANGUAGES&lt;br /&gt;
&lt;br /&gt;
*Linux&lt;br /&gt;
**Esempio Comandi Linux|Comandi&lt;br /&gt;
**Scripting Linux|Scripting&lt;br /&gt;
**Configurazioni Ambiente Linux|Configurazioni&lt;br /&gt;
**Procedure Linux|Procedure&lt;br /&gt;
&lt;br /&gt;
*Windows&lt;br /&gt;
**Esempio Comandi Windows|Comandi&lt;br /&gt;
**Scripting Windows|Scripting&lt;br /&gt;
**Procedure Windows|Procedure&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=107</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=107"/>
		<updated>2020-01-24T20:17:42Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Get-Start MediaWiki|Get-Start MediaWiki&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
** Speciale:TutteLePagine|Lista Completa&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* SEARCH&lt;br /&gt;
* LANGUAGES&lt;br /&gt;
&lt;br /&gt;
*Linux&lt;br /&gt;
**Esempio Comandi Linux|Comandi&lt;br /&gt;
**Scripting Linux|Scripting&lt;br /&gt;
**Configurazioni Ambiente Linux|Configurazioni&lt;br /&gt;
**Procedure Linux|Procedure&lt;br /&gt;
&lt;br /&gt;
*Windows&lt;br /&gt;
**Esempio Comandi Windows|Comandi&lt;br /&gt;
**Scripting Windows|Scripting&lt;br /&gt;
**Procedure Windows|Procedure&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=106</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=106"/>
		<updated>2020-01-24T20:17:00Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Get-Start MediaWiki|Get-Start MediaWiki&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
** Lista Completa|Speciale:TutteLePagine&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* SEARCH&lt;br /&gt;
* LANGUAGES&lt;br /&gt;
&lt;br /&gt;
*Linux&lt;br /&gt;
**Esempio Comandi Linux|Comandi&lt;br /&gt;
**Scripting Linux|Scripting&lt;br /&gt;
**Configurazioni Ambiente Linux|Configurazioni&lt;br /&gt;
**Procedure Linux|Procedure&lt;br /&gt;
&lt;br /&gt;
*Windows&lt;br /&gt;
**Esempio Comandi Windows|Comandi&lt;br /&gt;
**Scripting Windows|Scripting&lt;br /&gt;
**Procedure Windows|Procedure&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=105</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=105"/>
		<updated>2020-01-22T20:39:15Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preliminari==&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
===Installazione SSH Server (Opzionale)===&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
===Installazione editor di testo (Opzionale)===&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
===Configurazione hostname===&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
===Sincronizza Orologio di Sistema===&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===Installazione e default di OpenSSL===&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
===Utilità varie===&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
==Installazione dei servizi==&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
===Apache e PHP===&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Let's Encrypt===&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
===PureFTPd===&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
===Webalizer e AWStats (Opzionale)===&lt;br /&gt;
Possiamo installare questi due tool nel modo seguente:&lt;br /&gt;
&lt;br /&gt;
 apt install -y webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl&lt;br /&gt;
&lt;br /&gt;
Pariamo &amp;quot;''/etc/cron.d/awstats''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/awstats&lt;br /&gt;
&lt;br /&gt;
e commentiamo tutto il file:&lt;br /&gt;
&lt;br /&gt;
 #MAILTO=root&lt;br /&gt;
 &lt;br /&gt;
 #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/update.sh&lt;br /&gt;
 &lt;br /&gt;
 # Generate static reports:&lt;br /&gt;
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/buildstatic.sh&lt;br /&gt;
&lt;br /&gt;
===Jailkit===&lt;br /&gt;
Jailkit è un insieme di utilità per limitare gli account utente a file specifici utilizzando chroot () e o comandi specifici. Configurare una shell chroot, una shell limitata a un comando specifico o un demone all'interno di una prigione chroot è molto più semplice e può essere automatizzato usando queste utility.&lt;br /&gt;
&lt;br /&gt;
Prepariamo il pacchetto per l'installazione partendo dei sorgenti:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz&lt;br /&gt;
 tar xvfz jailkit-2.20.tar.gz&lt;br /&gt;
 cd jailkit-2.20&lt;br /&gt;
 echo 5 &amp;gt; debian/compat&lt;br /&gt;
 ./debian/rules binary&lt;br /&gt;
&lt;br /&gt;
Ora possiamo installare il Jailkit ''.deb'' come segue:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i jailkit_2.20-1_*.deb&lt;br /&gt;
 rm -rf jailkit-2.20*&lt;br /&gt;
&lt;br /&gt;
===fail2ban===&lt;br /&gt;
Opzionale ma molto raccomandata, l'installazione di fail2ban.&lt;br /&gt;
&lt;br /&gt;
 apt install -y fail2ban&lt;br /&gt;
&lt;br /&gt;
Per abilitare fail2ban al monitoraggio delle operazioni sull'FTP creiamo il file ''/etc/fail2ban/jail.local''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
E nel file il seguente testo&lt;br /&gt;
&lt;br /&gt;
 [pure-ftpd]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = ftp&lt;br /&gt;
 filter = pure-ftpd&lt;br /&gt;
 logpath = /var/log/syslog&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio&lt;br /&gt;
&lt;br /&gt;
 systemctl restart fail2ban&lt;br /&gt;
&lt;br /&gt;
===PHPMyAdmin===&lt;br /&gt;
Dalla versione 10 di Debian, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo dai sorgenti:&lt;br /&gt;
Creiamo la struttura di base:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/share/phpmyadmin&lt;br /&gt;
 mkdir /etc/phpmyadmin&lt;br /&gt;
 mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
 chown -R www-data:www-data /var/lib/phpmyadmin&lt;br /&gt;
 touch /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
&lt;br /&gt;
Spostiamoci nella directory /tmp per scaricare lo zip dei sorgenti per poi posizionarli nel path creatogli&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
&lt;br /&gt;
 tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/&lt;br /&gt;
 rm phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 rm -rf phpMyAdmin-4.9.0.1-all-languages&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo file di configurazione partendo dal file di configurazione d'esempio e poi modifichiamolo nelle parti necessarie:&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 &lt;br /&gt;
Impostiamo una password sicura (blowfish secret) deve essere lunga 32 caratteri&lt;br /&gt;
&lt;br /&gt;
 $cfg['blowfish_secret'] = '&amp;lt;QUi la password. non verrà richiesta&amp;gt;'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;
&lt;br /&gt;
Quindi aggiungiamo una riga per impostare la directory che PHPMyAdmin dovrà usare per archiviare i file temporanei:&lt;br /&gt;
&lt;br /&gt;
 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';&lt;br /&gt;
&lt;br /&gt;
Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/phpmyadmin.conf&lt;br /&gt;
&lt;br /&gt;
Possiamo incollare nel file la seguente configurazione (se sono stati seguiti tutti i passi come da guida, creati gli stessi path con gli stessi nomi altrimenti andrà modificata in base le esigenze):&lt;br /&gt;
&lt;br /&gt;
 # phpMyAdmin default Apache configuration&lt;br /&gt;
 &lt;br /&gt;
 Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
  Options FollowSymLinks&lt;br /&gt;
  DirectoryIndex index.php&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;IfModule mod_php7.c&amp;gt;&lt;br /&gt;
  AddType application/x-httpd-php .php&lt;br /&gt;
 &lt;br /&gt;
  php_flag magic_quotes_gpc Off&lt;br /&gt;
  php_flag track_vars On&lt;br /&gt;
  php_flag register_globals Off&lt;br /&gt;
  php_value include_path .&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Authorize for setup&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule mod_authn_file.c&amp;gt;&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;phpMyAdmin Setup&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Disallow web access to directories that don't need it&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attiviamo la configurazione appena aggiunta e riavviamo Apache.&lt;br /&gt;
&lt;br /&gt;
 a2enconf phpmyadmin&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Nel passaggio successivo, configureremo l'archivio di configurazione phpMyadmin (database).&lt;br /&gt;
&lt;br /&gt;
Accediamo a MariaDB come utente root:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Nella shell MariaDB, creaiamo un nuovo database e un utente per PHPMyAdmin e diamo i privilegi necessari all'utente creato relativamente per il nuovo database creato&lt;br /&gt;
immettiamo una password sicura per l'utente pma che stiamo creando sia nella creazione sia nel settaggio dei Privilegi dell'utente: &lt;br /&gt;
&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE DATABASE phpmyadmin;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE USER 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma';&lt;br /&gt;
 MariaDB [(none)]&amp;gt; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma' WITH GRANT OPTION;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; EXIT;&lt;br /&gt;
&lt;br /&gt;
Infine, carichiamo le tabelle SQL nel database:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p phpmyadmin &amp;lt; /usr/share/phpmyadmin/sql/create_tables.sql&lt;br /&gt;
&lt;br /&gt;
Quello che dobbiamo fare ora è impostare i dettagli dell'utente phpmyadmin nel file di configurazione. Apriamo di nuovo il file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
&lt;br /&gt;
Scorriamo il file fino a trovare alle linee riportate sopra ed editiamole o decommentiamole se necessario, impostando i parametri necessari tra cui utente e password appena creati per phpmyadmi:&lt;br /&gt;
&lt;br /&gt;
 /* User used to manipulate with storage */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['controlhost'] = 'localhost';&lt;br /&gt;
 $cfg['Servers'][$i]['controlport'] = '';&lt;br /&gt;
 $cfg['Servers'][$i]['controluser'] = 'pma';&lt;br /&gt;
 $cfg['Servers'][$i]['controlpass'] = 'passwordperlutentepma';&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* Storage database and tables */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';&lt;br /&gt;
 $cfg['Servers'][$i]['relation'] = 'pma__relation';&lt;br /&gt;
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';&lt;br /&gt;
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';&lt;br /&gt;
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';&lt;br /&gt;
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';&lt;br /&gt;
 $cfg['Servers'][$i]['history'] = 'pma__history';&lt;br /&gt;
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';&lt;br /&gt;
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';&lt;br /&gt;
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';&lt;br /&gt;
 $cfg['Servers'][$i]['recent'] = 'pma__recent';&lt;br /&gt;
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';&lt;br /&gt;
 $cfg['Servers'][$i]['users'] = 'pma__users';&lt;br /&gt;
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';&lt;br /&gt;
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';&lt;br /&gt;
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';&lt;br /&gt;
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';&lt;br /&gt;
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';&lt;br /&gt;
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sono di sopra riportate e segnate in rosso le linee modificate. Sostituisci &amp;quot;passwordperlutentepma&amp;quot; con la password che è stata impostata per l'utente phpmyadmin. Nota che anche &amp;quot;//&amp;quot; davanti alle linee è stato rimosso!.&lt;br /&gt;
&lt;br /&gt;
==ISPConfig==&lt;br /&gt;
Procediamo quindi con l'installazione di ISPConfig. Scarichiamo l'ultima versione stabile rilasciata:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz&lt;br /&gt;
 tar xfz ISPConfig-3-stable.tar.gz&lt;br /&gt;
 cd ispconfig3_install/install/&lt;br /&gt;
&lt;br /&gt;
Lanciamo quindi lo script per eseguire l'installazione:&lt;br /&gt;
&lt;br /&gt;
 php -q install.php&lt;br /&gt;
&lt;br /&gt;
Ciò avvierà il programma di installazione ISPConfig 3. Il programma di installazione configurerà tutti i servizi installati e l'interfaccia web per gestire il nuovo webserver.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; Initial configuration&lt;br /&gt;
 Operating System: Debian 10.0 (Buster) or compatible&lt;br /&gt;
 Following will be a few questions for primary configuration so be careful.&lt;br /&gt;
 Default values are in [brackets] and can be accepted with &amp;lt;ENTER&amp;gt;.&lt;br /&gt;
 Tap in &amp;quot;quit&amp;quot; (without the quotes) to stop the installer.&lt;br /&gt;
&lt;br /&gt;
 Select language (en,de) [en]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Installation mode (standard,expert) [standard]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server hostname [localhost]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server port [3306]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root username [root]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Inseriamo la password dell'utente root per MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL database to create [dbispconfig]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL charset [utf8]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuring Jailkit&lt;br /&gt;
 Configuring Pureftpd&lt;br /&gt;
 Configuring Apache&lt;br /&gt;
 Configuring vlogger&lt;br /&gt;
 Configuring Fail2ban&lt;br /&gt;
 Installing ISPConfig&lt;br /&gt;
 ISPConfig Port [8080]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere invio se vogliamo utilizzare la porta 8080, altrimenti inserire una porta diversa per accedere al pannello di gestione di ISPConfig (ricordiamoci di aprire la porta sul Firewall se ne abbiamo uno sia software che fisico)&amp;lt;/span&amp;gt;&lt;br /&gt;
 Admin password [admin]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;--Inseriamo una password per l'utente Admin con cui utilizzare il Pannello Web di ISPConfig&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Generating RSA private key, 4096 bit long modulus&lt;br /&gt;
 .......................++&lt;br /&gt;
 ................................................................................................................................++&lt;br /&gt;
 e is 65537 (0x10001)&lt;br /&gt;
 You are about to be asked to enter information that will be incorporated&lt;br /&gt;
 into your certificate request.&lt;br /&gt;
 What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
 There are quite a few fields but you can leave some blank&lt;br /&gt;
 For some fields there will be a default value,&lt;br /&gt;
 If you enter '.', the field will be left blank.&lt;br /&gt;
 -----&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter 2 letter country code&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the name of the  state&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter your city&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter company name or press enter&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the server hostname, in my case: server1.example.com&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 An optional company name []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 writing RSA key&lt;br /&gt;
&lt;br /&gt;
 Configuring DBServer&lt;br /&gt;
 Installing ISPConfig crontab&lt;br /&gt;
 no crontab for root&lt;br /&gt;
 Detect IP addresses&lt;br /&gt;
 Restarting services ...&lt;br /&gt;
 Installation completed.&lt;br /&gt;
&lt;br /&gt;
Successivamente è possibile accedere a ISPConfig 3 in http(s)://server1.miodominio.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che è stato scelto durante l'installazione, come l'indirizzo IP da inserire dipende dalla configurazione del server, se vogliamo che risponda un nome a dominio come server1.miodominio.com:8080 andranno chiaramente configurati dei DNS con relativo Record A per il nome a dominio). Accedi con il nome utente admin e la password admin.&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;br /&gt;
[[Category:Apache2]]&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:MariaDB]]&lt;br /&gt;
[[Category:ISPConfig]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=104</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=104"/>
		<updated>2020-01-22T20:35:00Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
====Sincronizza Orologio di Sistema====&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
====Installazione e default di OpenSSL====&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
====Utilità varie====&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
===Installazione dei servizi===&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
====Apache e PHP====&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
====Let's Encrypt====&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
====PureFTPd====&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
====Webalizer e AWStats (Opzionale)====&lt;br /&gt;
Possiamo installare questi due tool nel modo seguente:&lt;br /&gt;
&lt;br /&gt;
 apt install -y webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl&lt;br /&gt;
&lt;br /&gt;
Pariamo &amp;quot;''/etc/cron.d/awstats''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/awstats&lt;br /&gt;
&lt;br /&gt;
e commentiamo tutto il file:&lt;br /&gt;
&lt;br /&gt;
 #MAILTO=root&lt;br /&gt;
 &lt;br /&gt;
 #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/update.sh&lt;br /&gt;
 &lt;br /&gt;
 # Generate static reports:&lt;br /&gt;
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/buildstatic.sh&lt;br /&gt;
&lt;br /&gt;
====Jailkit====&lt;br /&gt;
Jailkit è un insieme di utilità per limitare gli account utente a file specifici utilizzando chroot () e o comandi specifici. Configurare una shell chroot, una shell limitata a un comando specifico o un demone all'interno di una prigione chroot è molto più semplice e può essere automatizzato usando queste utility.&lt;br /&gt;
&lt;br /&gt;
Prepariamo il pacchetto per l'installazione partendo dei sorgenti:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz&lt;br /&gt;
 tar xvfz jailkit-2.20.tar.gz&lt;br /&gt;
 cd jailkit-2.20&lt;br /&gt;
 echo 5 &amp;gt; debian/compat&lt;br /&gt;
 ./debian/rules binary&lt;br /&gt;
&lt;br /&gt;
Ora possiamo installare il Jailkit ''.deb'' come segue:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i jailkit_2.20-1_*.deb&lt;br /&gt;
 rm -rf jailkit-2.20*&lt;br /&gt;
&lt;br /&gt;
====fail2ban====&lt;br /&gt;
Opzionale ma molto raccomandata, l'installazione di fail2ban.&lt;br /&gt;
&lt;br /&gt;
 apt install -y fail2ban&lt;br /&gt;
&lt;br /&gt;
Per abilitare fail2ban al monitoraggio delle operazioni sull'FTP creiamo il file ''/etc/fail2ban/jail.local''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
E nel file il seguente testo&lt;br /&gt;
&lt;br /&gt;
 [pure-ftpd]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = ftp&lt;br /&gt;
 filter = pure-ftpd&lt;br /&gt;
 logpath = /var/log/syslog&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio&lt;br /&gt;
&lt;br /&gt;
 systemctl restart fail2ban&lt;br /&gt;
&lt;br /&gt;
====PHPMyAdmin====&lt;br /&gt;
Dalla versione 10 di Debian, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo dai sorgenti:&lt;br /&gt;
Creiamo la struttura di base:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/share/phpmyadmin&lt;br /&gt;
 mkdir /etc/phpmyadmin&lt;br /&gt;
 mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
 chown -R www-data:www-data /var/lib/phpmyadmin&lt;br /&gt;
 touch /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
&lt;br /&gt;
Spostiamoci nella directory /tmp per scaricare lo zip dei sorgenti per poi posizionarli nel path creatogli&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
&lt;br /&gt;
 tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/&lt;br /&gt;
 rm phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 rm -rf phpMyAdmin-4.9.0.1-all-languages&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo file di configurazione partendo dal file di configurazione d'esempio e poi modifichiamolo nelle parti necessarie:&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 &lt;br /&gt;
Impostiamo una password sicura (blowfish secret) deve essere lunga 32 caratteri&lt;br /&gt;
&lt;br /&gt;
 $cfg['blowfish_secret'] = '&amp;lt;QUi la password. non verrà richiesta&amp;gt;'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;
&lt;br /&gt;
Quindi aggiungiamo una riga per impostare la directory che PHPMyAdmin dovrà usare per archiviare i file temporanei:&lt;br /&gt;
&lt;br /&gt;
 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';&lt;br /&gt;
&lt;br /&gt;
Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/phpmyadmin.conf&lt;br /&gt;
&lt;br /&gt;
Possiamo incollare nel file la seguente configurazione (se sono stati seguiti tutti i passi come da guida, creati gli stessi path con gli stessi nomi altrimenti andrà modificata in base le esigenze):&lt;br /&gt;
&lt;br /&gt;
 # phpMyAdmin default Apache configuration&lt;br /&gt;
 &lt;br /&gt;
 Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
  Options FollowSymLinks&lt;br /&gt;
  DirectoryIndex index.php&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;IfModule mod_php7.c&amp;gt;&lt;br /&gt;
  AddType application/x-httpd-php .php&lt;br /&gt;
 &lt;br /&gt;
  php_flag magic_quotes_gpc Off&lt;br /&gt;
  php_flag track_vars On&lt;br /&gt;
  php_flag register_globals Off&lt;br /&gt;
  php_value include_path .&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Authorize for setup&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule mod_authn_file.c&amp;gt;&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;phpMyAdmin Setup&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Disallow web access to directories that don't need it&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attiviamo la configurazione appena aggiunta e riavviamo Apache.&lt;br /&gt;
&lt;br /&gt;
 a2enconf phpmyadmin&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Nel passaggio successivo, configureremo l'archivio di configurazione phpMyadmin (database).&lt;br /&gt;
&lt;br /&gt;
Accediamo a MariaDB come utente root:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Nella shell MariaDB, creaiamo un nuovo database e un utente per PHPMyAdmin e diamo i privilegi necessari all'utente creato relativamente per il nuovo database creato&lt;br /&gt;
immettiamo una password sicura per l'utente pma che stiamo creando sia nella creazione sia nel settaggio dei Privilegi dell'utente: &lt;br /&gt;
&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE DATABASE phpmyadmin;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE USER 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma';&lt;br /&gt;
 MariaDB [(none)]&amp;gt; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma' WITH GRANT OPTION;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; EXIT;&lt;br /&gt;
&lt;br /&gt;
Infine, carichiamo le tabelle SQL nel database:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p phpmyadmin &amp;lt; /usr/share/phpmyadmin/sql/create_tables.sql&lt;br /&gt;
&lt;br /&gt;
Quello che dobbiamo fare ora è impostare i dettagli dell'utente phpmyadmin nel file di configurazione. Apriamo di nuovo il file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
&lt;br /&gt;
Scorriamo il file fino a trovare alle linee riportate sopra ed editiamole o decommentiamole se necessario, impostando i parametri necessari tra cui utente e password appena creati per phpmyadmi:&lt;br /&gt;
&lt;br /&gt;
 /* User used to manipulate with storage */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['controlhost'] = 'localhost';&lt;br /&gt;
 $cfg['Servers'][$i]['controlport'] = '';&lt;br /&gt;
 $cfg['Servers'][$i]['controluser'] = 'pma';&lt;br /&gt;
 $cfg['Servers'][$i]['controlpass'] = 'passwordperlutentepma';&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* Storage database and tables */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';&lt;br /&gt;
 $cfg['Servers'][$i]['relation'] = 'pma__relation';&lt;br /&gt;
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';&lt;br /&gt;
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';&lt;br /&gt;
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';&lt;br /&gt;
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';&lt;br /&gt;
 $cfg['Servers'][$i]['history'] = 'pma__history';&lt;br /&gt;
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';&lt;br /&gt;
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';&lt;br /&gt;
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';&lt;br /&gt;
 $cfg['Servers'][$i]['recent'] = 'pma__recent';&lt;br /&gt;
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';&lt;br /&gt;
 $cfg['Servers'][$i]['users'] = 'pma__users';&lt;br /&gt;
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';&lt;br /&gt;
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';&lt;br /&gt;
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';&lt;br /&gt;
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';&lt;br /&gt;
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';&lt;br /&gt;
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sono di sopra riportate e segnate in rosso le linee modificate. Sostituisci &amp;quot;passwordperlutentepma&amp;quot; con la password che è stata impostata per l'utente phpmyadmin. Nota che anche &amp;quot;//&amp;quot; davanti alle linee è stato rimosso!.&lt;br /&gt;
&lt;br /&gt;
===ISPConfig===&lt;br /&gt;
Procediamo quindi con l'installazione di ISPConfig. Scarichiamo l'ultima versione stabile rilasciata:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz&lt;br /&gt;
 tar xfz ISPConfig-3-stable.tar.gz&lt;br /&gt;
 cd ispconfig3_install/install/&lt;br /&gt;
&lt;br /&gt;
Lanciamo quindi lo script per eseguire l'installazione:&lt;br /&gt;
&lt;br /&gt;
 php -q install.php&lt;br /&gt;
&lt;br /&gt;
Ciò avvierà il programma di installazione ISPConfig 3. Il programma di installazione configurerà tutti i servizi installati e l'interfaccia web per gestire il nuovo webserver.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; Initial configuration&lt;br /&gt;
 Operating System: Debian 10.0 (Buster) or compatible&lt;br /&gt;
 Following will be a few questions for primary configuration so be careful.&lt;br /&gt;
 Default values are in [brackets] and can be accepted with &amp;lt;ENTER&amp;gt;.&lt;br /&gt;
 Tap in &amp;quot;quit&amp;quot; (without the quotes) to stop the installer.&lt;br /&gt;
&lt;br /&gt;
 Select language (en,de) [en]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Installation mode (standard,expert) [standard]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server hostname [localhost]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server port [3306]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root username [root]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Inseriamo la password dell'utente root per MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL database to create [dbispconfig]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL charset [utf8]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuring Jailkit&lt;br /&gt;
 Configuring Pureftpd&lt;br /&gt;
 Configuring Apache&lt;br /&gt;
 Configuring vlogger&lt;br /&gt;
 Configuring Fail2ban&lt;br /&gt;
 Installing ISPConfig&lt;br /&gt;
 ISPConfig Port [8080]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere invio se vogliamo utilizzare la porta 8080, altrimenti inserire una porta diversa per accedere al pannello di gestione di ISPConfig (ricordiamoci di aprire la porta sul Firewall se ne abbiamo uno sia software che fisico)&amp;lt;/span&amp;gt;&lt;br /&gt;
 Admin password [admin]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;--Inseriamo una password per l'utente Admin con cui utilizzare il Pannello Web di ISPConfig&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Generating RSA private key, 4096 bit long modulus&lt;br /&gt;
 .......................++&lt;br /&gt;
 ................................................................................................................................++&lt;br /&gt;
 e is 65537 (0x10001)&lt;br /&gt;
 You are about to be asked to enter information that will be incorporated&lt;br /&gt;
 into your certificate request.&lt;br /&gt;
 What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
 There are quite a few fields but you can leave some blank&lt;br /&gt;
 For some fields there will be a default value,&lt;br /&gt;
 If you enter '.', the field will be left blank.&lt;br /&gt;
 -----&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter 2 letter country code&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the name of the  state&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter your city&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter company name or press enter&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the server hostname, in my case: server1.example.com&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 An optional company name []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 writing RSA key&lt;br /&gt;
&lt;br /&gt;
 Configuring DBServer&lt;br /&gt;
 Installing ISPConfig crontab&lt;br /&gt;
 no crontab for root&lt;br /&gt;
 Detect IP addresses&lt;br /&gt;
 Restarting services ...&lt;br /&gt;
 Installation completed.&lt;br /&gt;
&lt;br /&gt;
Successivamente è possibile accedere a ISPConfig 3 in http(s)://server1.miodominio.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che è stato scelto durante l'installazione, come l'indirizzo IP da inserire dipende dalla configurazione del server, se vogliamo che risponda un nome a dominio come server1.miodominio.com:8080 andranno chiaramente configurati dei DNS con relativo Record A per il nome a dominio). Accedi con il nome utente admin e la password admin.&lt;br /&gt;
&lt;br /&gt;
[[Category:Webserver]]&lt;br /&gt;
[[Category:Apache2]]&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:MariaDB]]&lt;br /&gt;
[[Category:ISPConfig]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=103</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=103"/>
		<updated>2020-01-22T20:10:11Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;gt;'''[W.i.p]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
====Sincronizza Orologio di Sistema====&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
====Installazione e default di OpenSSL====&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
====Utilità varie====&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
===Installazione dei servizi===&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
====Apache e PHP====&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
====Let's Encrypt====&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
====PureFTPd====&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
====Webalizer e AWStats (Opzionale)====&lt;br /&gt;
Possiamo installare questi due tool nel modo seguente:&lt;br /&gt;
&lt;br /&gt;
 apt install -y webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl&lt;br /&gt;
&lt;br /&gt;
Pariamo &amp;quot;''/etc/cron.d/awstats''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/cron.d/awstats&lt;br /&gt;
&lt;br /&gt;
e commentiamo tutto il file:&lt;br /&gt;
&lt;br /&gt;
 #MAILTO=root&lt;br /&gt;
 &lt;br /&gt;
 #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/update.sh&lt;br /&gt;
 &lt;br /&gt;
 # Generate static reports:&lt;br /&gt;
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;amp;&amp;amp; /usr/share/awstats/tools/buildstatic.sh&lt;br /&gt;
&lt;br /&gt;
====Jailkit====&lt;br /&gt;
Jailkit è un insieme di utilità per limitare gli account utente a file specifici utilizzando chroot () e o comandi specifici. Configurare una shell chroot, una shell limitata a un comando specifico o un demone all'interno di una prigione chroot è molto più semplice e può essere automatizzato usando queste utility.&lt;br /&gt;
&lt;br /&gt;
Prepariamo il pacchetto per l'installazione partendo dei sorgenti:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz&lt;br /&gt;
 tar xvfz jailkit-2.20.tar.gz&lt;br /&gt;
 cd jailkit-2.20&lt;br /&gt;
 echo 5 &amp;gt; debian/compat&lt;br /&gt;
 ./debian/rules binary&lt;br /&gt;
&lt;br /&gt;
Ora possiamo installare il Jailkit ''.deb'' come segue:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i jailkit_2.20-1_*.deb&lt;br /&gt;
 rm -rf jailkit-2.20*&lt;br /&gt;
&lt;br /&gt;
====fail2ban===&lt;br /&gt;
Opzionale ma molto raccomandata, l'installazione di fail2ban.&lt;br /&gt;
&lt;br /&gt;
 apt install -y fail2ban&lt;br /&gt;
&lt;br /&gt;
Per abilitare fail2ban al monitoraggio delle operazioni sull'FTP creiamo il file ''/etc/fail2ban/jail.local''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
E nel file il seguente testo&lt;br /&gt;
&lt;br /&gt;
 [pure-ftpd]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 port = ftp&lt;br /&gt;
 filter = pure-ftpd&lt;br /&gt;
 logpath = /var/log/syslog&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio&lt;br /&gt;
&lt;br /&gt;
 systemctl restart fail2ban&lt;br /&gt;
&lt;br /&gt;
====PHPMyAdmin====&lt;br /&gt;
Dalla versione 10 di Debian, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo dai sorgenti:&lt;br /&gt;
Creiamo la struttura di base:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/share/phpmyadmin&lt;br /&gt;
 mkdir /etc/phpmyadmin&lt;br /&gt;
 mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
 chown -R www-data:www-data /var/lib/phpmyadmin&lt;br /&gt;
 touch /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
&lt;br /&gt;
Spostiamoci nella directory /tmp per scaricare lo zip dei sorgenti per poi posizionarli nel path creatogli&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
&lt;br /&gt;
 tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/&lt;br /&gt;
 rm phpMyAdmin-4.9.0.1-all-languages.tar.gz&lt;br /&gt;
 rm -rf phpMyAdmin-4.9.0.1-all-languages&lt;br /&gt;
&lt;br /&gt;
Creiamo un nuovo file di configurazione partendo dal file di configurazione d'esempio e poi modifichiamolo nelle parti necessarie:&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
 &lt;br /&gt;
Impostiamo una password sicura (blowfish secret) deve essere lunga 32 caratteri&lt;br /&gt;
&lt;br /&gt;
 $cfg['blowfish_secret'] = '&amp;lt;QUi la password. non verrà richiesta&amp;gt;'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&lt;br /&gt;
&lt;br /&gt;
Quindi aggiungiamo una riga per impostare la directory che PHPMyAdmin dovrà usare per archiviare i file temporanei:&lt;br /&gt;
&lt;br /&gt;
 $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';&lt;br /&gt;
&lt;br /&gt;
Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/phpmyadmin.conf&lt;br /&gt;
&lt;br /&gt;
Possiamo incollare nel file la seguente configurazione (se sono stati seguiti tutti i passi come da guida, creati gli stessi path con gli stessi nomi altrimenti andrà modificata in base le esigenze):&lt;br /&gt;
&lt;br /&gt;
 # phpMyAdmin default Apache configuration&lt;br /&gt;
 &lt;br /&gt;
 Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
  Options FollowSymLinks&lt;br /&gt;
  DirectoryIndex index.php&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;IfModule mod_php7.c&amp;gt;&lt;br /&gt;
  AddType application/x-httpd-php .php&lt;br /&gt;
 &lt;br /&gt;
  php_flag magic_quotes_gpc Off&lt;br /&gt;
  php_flag track_vars On&lt;br /&gt;
  php_flag register_globals Off&lt;br /&gt;
  php_value include_path .&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Authorize for setup&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule mod_authn_file.c&amp;gt;&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;quot;phpMyAdmin Setup&amp;quot;&lt;br /&gt;
  AuthUserFile /etc/phpmyadmin/htpasswd.setup&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
  Require valid-user&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Disallow web access to directories that don't need it&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
  Order Deny,Allow&lt;br /&gt;
  Deny from All&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attiviamo la configurazione appena aggiunta e riavviamo Apache.&lt;br /&gt;
&lt;br /&gt;
 a2enconf phpmyadmin&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Nel passaggio successivo, configureremo l'archivio di configurazione phpMyadmin (database).&lt;br /&gt;
&lt;br /&gt;
Accediamo a MariaDB come utente root:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Nella shell MariaDB, creaiamo un nuovo database e un utente per PHPMyAdmin e diamo i privilegi necessari all'utente creato relativamente per il nuovo database creato&lt;br /&gt;
immettiamo una password sicura per l'utente pma che stiamo creando sia nella creazione sia nel settaggio dei Privilegi dell'utente: &lt;br /&gt;
&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE DATABASE phpmyadmin;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; CREATE USER 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma';&lt;br /&gt;
 MariaDB [(none)]&amp;gt; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'passwordperlutentepma' WITH GRANT OPTION;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
 MariaDB [(none)]&amp;gt; EXIT;&lt;br /&gt;
&lt;br /&gt;
Infine, carichiamo le tabelle SQL nel database:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p phpmyadmin &amp;lt; /usr/share/phpmyadmin/sql/create_tables.sql&lt;br /&gt;
&lt;br /&gt;
Quello che dobbiamo fare ora è impostare i dettagli dell'utente phpmyadmin nel file di configurazione. Apriamo di nuovo il file in nano editor:&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/phpmyadmin/config.inc.php&lt;br /&gt;
&lt;br /&gt;
Scorriamo il file fino a trovare alle linee riportate sopra ed editiamole o decommentiamole se necessario, impostando i parametri necessari tra cui utente e password appena creati per phpmyadmi:&lt;br /&gt;
&lt;br /&gt;
 /* User used to manipulate with storage */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['controlhost'] = 'localhost';&lt;br /&gt;
 $cfg['Servers'][$i]['controlport'] = '';&lt;br /&gt;
 $cfg['Servers'][$i]['controluser'] = 'pma';&lt;br /&gt;
 $cfg['Servers'][$i]['controlpass'] = 'passwordperlutentepma';&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* Storage database and tables */&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';&lt;br /&gt;
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';&lt;br /&gt;
 $cfg['Servers'][$i]['relation'] = 'pma__relation';&lt;br /&gt;
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';&lt;br /&gt;
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';&lt;br /&gt;
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';&lt;br /&gt;
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';&lt;br /&gt;
 $cfg['Servers'][$i]['history'] = 'pma__history';&lt;br /&gt;
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';&lt;br /&gt;
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';&lt;br /&gt;
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';&lt;br /&gt;
 $cfg['Servers'][$i]['recent'] = 'pma__recent';&lt;br /&gt;
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';&lt;br /&gt;
 $cfg['Servers'][$i]['users'] = 'pma__users';&lt;br /&gt;
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';&lt;br /&gt;
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';&lt;br /&gt;
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';&lt;br /&gt;
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';&lt;br /&gt;
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';&lt;br /&gt;
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sono di sopra riportate e segnate in rosso le linee modificate. Sostituisci &amp;quot;passwordperlutentepma&amp;quot; con la password che è stata impostata per l'utente phpmyadmin. Nota che anche &amp;quot;//&amp;quot; davanti alle linee è stato rimosso!.&lt;br /&gt;
&lt;br /&gt;
===ISPConfig===&lt;br /&gt;
Procediamo quindi con l'installazione di ISPConfig. Scarichiamo l'ultima versione stabile rilasciata:&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz&lt;br /&gt;
 tar xfz ISPConfig-3-stable.tar.gz&lt;br /&gt;
 cd ispconfig3_install/install/&lt;br /&gt;
&lt;br /&gt;
Lanciamo quindi lo script per eseguire l'installazione:&lt;br /&gt;
&lt;br /&gt;
 php -q install.php&lt;br /&gt;
&lt;br /&gt;
Ciò avvierà il programma di installazione ISPConfig 3. Il programma di installazione configurerà tutti i servizi installati e l'interfaccia web per gestire il nuovo webserver.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; Initial configuration&lt;br /&gt;
 Operating System: Debian 10.0 (Buster) or compatible&lt;br /&gt;
 Following will be a few questions for primary configuration so be careful.&lt;br /&gt;
 Default values are in [brackets] and can be accepted with &amp;lt;ENTER&amp;gt;.&lt;br /&gt;
 Tap in &amp;quot;quit&amp;quot; (without the quotes) to stop the installer.&lt;br /&gt;
&lt;br /&gt;
 Select language (en,de) [en]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Installation mode (standard,expert) [standard]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server hostname [localhost]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL server port [3306]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root username [root]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL root password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Inseriamo la password dell'utente root per MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL database to create [dbispconfig]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 MySQL charset [utf8]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuring Jailkit&lt;br /&gt;
 Configuring Pureftpd&lt;br /&gt;
 Configuring Apache&lt;br /&gt;
 Configuring vlogger&lt;br /&gt;
 Configuring Fail2ban&lt;br /&gt;
 Installing ISPConfig&lt;br /&gt;
 ISPConfig Port [8080]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere invio se vogliamo utilizzare la porta 8080, altrimenti inserire una porta diversa per accedere al pannello di gestione di ISPConfig (ricordiamoci di aprire la porta sul Firewall se ne abbiamo uno sia software che fisico)&amp;lt;/span&amp;gt;&lt;br /&gt;
 Admin password [admin]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;--Inseriamo una password per l'utente Admin con cui utilizzare il Pannello Web di ISPConfig&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Generating RSA private key, 4096 bit long modulus&lt;br /&gt;
 .......................++&lt;br /&gt;
 ................................................................................................................................++&lt;br /&gt;
 e is 65537 (0x10001)&lt;br /&gt;
 You are about to be asked to enter information that will be incorporated&lt;br /&gt;
 into your certificate request.&lt;br /&gt;
 What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
 There are quite a few fields but you can leave some blank&lt;br /&gt;
 For some fields there will be a default value,&lt;br /&gt;
 If you enter '.', the field will be left blank.&lt;br /&gt;
 -----&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter 2 letter country code&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the name of the  state&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter your city&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter company name or press enter&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Enter the server hostname, in my case: server1.example.com&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 An optional company name []: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;-- Premere Invio&amp;lt;/span&amp;gt;&lt;br /&gt;
 writing RSA key&lt;br /&gt;
&lt;br /&gt;
 Configuring DBServer&lt;br /&gt;
 Installing ISPConfig crontab&lt;br /&gt;
 no crontab for root&lt;br /&gt;
 Detect IP addresses&lt;br /&gt;
 Restarting services ...&lt;br /&gt;
 Installation completed.&lt;br /&gt;
&lt;br /&gt;
Successivamente è possibile accedere a ISPConfig 3 in http(s)://server1.miodominio.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che è stato scelto durante l'installazione, come l'indirizzo IP da inserire dipende dalla configurazione del server, se vogliamo che risponda un nome a dominio come server1.miodominio.com:8080 andranno chiaramente configurati dei DNS con relativo Record A per il nome a dominio). Accedi con il nome utente admin e la password admin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;gt;'''[W.i.p]'''&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=102</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=102"/>
		<updated>2020-01-21T20:59:00Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;gt;'''[W.i.p]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
====Sincronizza Orologio di Sistema====&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
====Installazione e default di OpenSSL====&lt;br /&gt;
Installiaamo il pacchetto openssl, utilità per i protocolli crittografici SSL e TLS per la comunicazione sicura su internet:&lt;br /&gt;
&lt;br /&gt;
 apt install -y openssl&lt;br /&gt;
&lt;br /&gt;
Ora possiamo configurare i dati di default che vengono utilizzati alla creazione di certificati e chiavi di sicurezza, editando il file:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/ssl/openssl.cnf&lt;br /&gt;
&lt;br /&gt;
Cerchiamo in questo file la sezione &amp;quot;''[ req_distinguished_name ]''&amp;quot; andando a settare i parametri &amp;quot;''_default''&amp;quot; ed editiamoli con i dati che preferiamo (questo passaggio è opzionale), segnati in Rosso i parametri da modificare o aggiungere:&lt;br /&gt;
&lt;br /&gt;
 [ req_distinguished_name ]&lt;br /&gt;
 countryName                     = Country Name (2 letter code)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;countryName_default             = IT&amp;lt;/span&amp;gt;&lt;br /&gt;
 countryName_min                 = 2&lt;br /&gt;
 countryName_max                 = 2&lt;br /&gt;
 &lt;br /&gt;
 stateOrProvinceName             = State or Province Name (full name)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;stateOrProvinceName_default     = Italy&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 localityName                    = Locality Name (eg, city)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;localityName_default            = Rome&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 0.organizationName              = Organization Name (eg, company)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;0.organizationName_default      = My Organization Name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # we can do this but it is not needed normally :-)&lt;br /&gt;
 #1.organizationName             = Second Organization Name (eg, company)&lt;br /&gt;
 #1.organizationName_default     = World Wide Web Pty Ltd&lt;br /&gt;
 &lt;br /&gt;
 organizationalUnitName          = Organizational Unit Name (eg, section)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;organizationalUnitName_default  = IT Department&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 commonName                      = Common Name (e.g. server FQDN or YOUR name)&lt;br /&gt;
 commonName_max                  = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;commonName_default              = server1.miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 emailAddress                    = Email Address&lt;br /&gt;
 emailAddress_max                = 64&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red;&amp;gt;emailAddress_default            = itsysadmin@miodominio.ext&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Salviamo e chiudiamo il file.&lt;br /&gt;
&lt;br /&gt;
====Utilità varie====&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
===Installazione dei servizi===&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
====Apache e PHP====&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
====Let's Encrypt====&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://dl.eff.org/certbot-auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
====PureFTPd====&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
Creaiamo il file ''dhparam'' per pure-ftpd:&lt;br /&gt;
&lt;br /&gt;
 openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione ''/etc/default/pure-ftpd-common''&lt;br /&gt;
&lt;br /&gt;
 nano /etc/default/pure-ftpd-common&lt;br /&gt;
&lt;br /&gt;
Assicuriamoci che la modalità di avvio sia impostata su ''standalone'' e il parametro VIRTUALCHROOT sia impostato a ''true''&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 STANDALONE_OR_INETD=standalone&lt;br /&gt;
 [...]&lt;br /&gt;
 VIRTUALCHROOT=true&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati sono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.&lt;br /&gt;
&lt;br /&gt;
Eseguiamo i comandi:&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /etc/pure-ftpd/conf/TLS&lt;br /&gt;
&lt;br /&gt;
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creiamo in ''/etc/ssl/private/'', creiamo prima quella directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ssl/private/&lt;br /&gt;
&lt;br /&gt;
Successivamente, possiamo generare il certificato SSL come segue:&lt;br /&gt;
&lt;br /&gt;
 openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
se abbiamo editato il file di configurazione di openssl a questo punto basterà premere invio ad ogni parametro perchè verrà impostato con il default impostato nel file di configurazione che compariranno tra le parentesi quadre ''[]'' ad ogni riga:&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere le iniziali della propria nazione (es &amp;quot;IT&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 State or Province Name (full name) [Some-State]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere stato o provincia.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Locality Name (eg, city) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere città.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere nome della tua organizzazione o azienda.&amp;lt;/span&amp;gt;&lt;br /&gt;
 Organizational Unit Name (eg, section) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome del dipartimento interessato (es &amp;quot;IT Department&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Common Name (eg, YOUR name) []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il nome di dominio completo del sistema (ad esempio &amp;quot;server1.miodominio.com&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
 Email Address []: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Immettere il tuo indirizzo e-mail.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modifichiamo le autorizzazioni del certificato SSL:&lt;br /&gt;
&lt;br /&gt;
 chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;br /&gt;
&lt;br /&gt;
Restartiamo il servizio PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;gt;'''[W.i.p]'''&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=101</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=101"/>
		<updated>2020-01-21T20:32:02Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;gt;'''[W.i.p]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://deb.debian.org/debian/&amp;lt;/nowiki&amp;gt; buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://security.debian.org/debian-security&amp;lt;/nowiki&amp;gt; buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/~# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/~# hostname -f&lt;br /&gt;
 server1.miodominio.ext&lt;br /&gt;
&lt;br /&gt;
====Sincronizza Orologio di Sistema====&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt install -y ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
====Utilità varie====&lt;br /&gt;
Passiamo ad installare in via preliminare alcuni pacchetti che possono aiutarci successivamente con le funzioni del server e con alcuni strumenti che potranno farci comodo:&lt;br /&gt;
&lt;br /&gt;
Antivirus&lt;br /&gt;
 apt install -y clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
Librerie e tool&lt;br /&gt;
 apt install -y openssl rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl&lt;br /&gt;
&lt;br /&gt;
Compressione Files&lt;br /&gt;
 apt install -y unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
===Installazione dei servizi===&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt install -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per motivi di sicurezza MariaDB, come MySQL, ha impostato di default il parametro bind-address=127.0.0.1 così da accettare solo le richieste provenienti da localhost. Nel caso avessimo bisogno di permettere l'accesso da altre fonti, proteggendo poi la porta magari tramite il firewall così da filtrare comunque le eventuali richieste da indirizzi indesiderati, abbiamo la necessità di modificare tale parametro. Possiamo commentare la riga in questione oppure aggiungere specifici sorgenti da cui desideriamo abilitare le richieste:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/mariadb.conf.d/50-server.cnf&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
 # Instead of skip-networking the default is now to listen only on&lt;br /&gt;
 # localhost which is more compatible and is not less secure.&lt;br /&gt;
 #bind-address           = 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
Settiamo ora il &amp;quot;password authentication method&amp;quot; su &amp;quot;native&amp;quot; se vogliamo abilitare la possibilità di connettersi al database con l'utenza di root utilizzando il PHPMyAdmin:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;update mysql.user set plugin = 'mysql_native_password' where user='root';&amp;quot; | mysql -u root&lt;br /&gt;
&lt;br /&gt;
Modifichiamo il file &amp;quot;/etc/mysql/debian.cnf&amp;quot; e imposta lì la password di root MYSQL/MariaDB nelle righe che iniziano con la parola password:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/mysql/debian.cnf&lt;br /&gt;
&lt;br /&gt;
La password da inserire è di seguito mostrata in rosso:&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 host = localhost&lt;br /&gt;
 user = root&lt;br /&gt;
 password = &amp;lt;span style=&amp;quot;color:red;&amp;gt;rootpassword&amp;lt;/span&amp;gt;&lt;br /&gt;
 socket = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir = /usr&lt;br /&gt;
&lt;br /&gt;
Per prevenire l'errore &amp;quot;'''Error in accept: Too many open files'''&amp;quot; impostiamo i limiti per i file aperti più eleventi per il MariaDB:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo queste due righe alla fine del file:&lt;br /&gt;
&lt;br /&gt;
 mysql soft nofile 65535&lt;br /&gt;
 mysql hard nofile 65535&lt;br /&gt;
&lt;br /&gt;
Creiamo una nuova directory &amp;quot;/etc/systemd/system/mysql.service.d/&amp;quot; con il comando mkdir.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/systemd/system/mysql.service.d/&lt;br /&gt;
&lt;br /&gt;
e aggiungiamo all'interno un file chiamato &amp;quot;limits.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 nano /etc/systemd/system/mysql.service.d/limits.conf&lt;br /&gt;
&lt;br /&gt;
all'interno di questo file incolliamo quanto segue:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 LimitNOFILE=infinity&lt;br /&gt;
&lt;br /&gt;
Salviamo il file. Lanciamo un reload di systemd e riavviamo il servizio MariaDB:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
Possiamo controllare ora che il servizio sia in esecuzione e che le connesioni di rete siano abilitate:&lt;br /&gt;
&lt;br /&gt;
 netstat -tap | grep mysql&lt;br /&gt;
&lt;br /&gt;
ottenendo un output simile a questo&lt;br /&gt;
&lt;br /&gt;
 root@server1:~# netstat -tap | grep mysql&lt;br /&gt;
 tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN      28655/mysqld&lt;br /&gt;
&lt;br /&gt;
====Apache e PHP====&lt;br /&gt;
Siamo pronti per procedere con l'installazione di Apache e PHP (verrà così installata la versione di default del repository di sistema):&lt;br /&gt;
&lt;br /&gt;
 apt install -y apache2 apache2-doc apache2-utils libapache2-mod-php php php-common php-gd php-mysql php-imap php-cli php-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php-curl php-intl php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl memcached php-memcache php-imagick php-gettext php-zip php-mbstring memcached libapache2-mod-passenger php-soap php-fpm php-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
Fatti ciò eseguiamo il seguente comando per abilitare i moduli di Apache suexec, rewrite, ssl, actions e include (più ''dav dav_fs auth_digest'' se si desidera utilizzare WebDAV):&lt;br /&gt;
&lt;br /&gt;
 a2enmod suexec rewrite ssl actions include cgi headers actions proxy_fcgi alias&lt;br /&gt;
&lt;br /&gt;
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabilitiamo l'intestazione HTTP_PROXY in Apache a livello globale aggiungendo il file di configurazione ''/etc/apache2/conf-available/httpoxy.conf'':&lt;br /&gt;
&lt;br /&gt;
'''Nota Bene''': la vulnerabilità in questione è denominata '''httpoxy''' (senza 'r') e quindi il file in cui viene aggiunta la configurazione per impedirne l'utilizzo è chiamato '''httpoxy.conf''' e non '''httproxy.conf''', quindi non manca 'r' nel nome del file.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apache2/conf-available/httpoxy.conf&lt;br /&gt;
&lt;br /&gt;
incolliamo quanto segue all'interno del file creato&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
     RequestHeader unset Proxy early&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per abilitare il modulo e la configurazione aggiunta:&lt;br /&gt;
&lt;br /&gt;
 a2enconf httpoxy&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
====Let's Encrypt====&lt;br /&gt;
Da ISPConfig 3.1 è stato aggiunto il supporto per la Certificate Authority SSL gratuita di Let's encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web da ISPConfig.&lt;br /&gt;
&lt;br /&gt;
Aggiungiamo quindi il supporto per Let's Encrypt:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/bin&lt;br /&gt;
 wget https://dl.eff.org/certbot-auto&lt;br /&gt;
 chmod a+x certbot-auto&lt;br /&gt;
 ./certbot-auto --install-only&lt;br /&gt;
&lt;br /&gt;
Non sono necessari ulteriori passaggi per l'installazione di LE. I certificati SSL del sito Web vengono creati da ISPConfig quando si aggiungono i siti Web.&lt;br /&gt;
&lt;br /&gt;
====PureFTPd====&lt;br /&gt;
Procediamo ora con l'installazione del demone FTP, in questa guida utilizziamo PureFTPd:&lt;br /&gt;
&lt;br /&gt;
 apt install -y pure-ftpd-common pure-ftpd-mysql&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;gt;'''[W.i.p]'''&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=100</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=100"/>
		<updated>2020-01-14T20:54:42Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/# hostname -f&lt;br /&gt;
 server1.example.com&lt;br /&gt;
&lt;br /&gt;
====Sincronizza Orologio di Sistema====&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt -y install ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===Installazione dei servizi===&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
A questo punto possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt-get -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[W.i.p]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Appunti per l'articolo:&lt;br /&gt;
&lt;br /&gt;
postfix postfix-mysql postfix-doc dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd getmail postgrey&lt;br /&gt;
&lt;br /&gt;
amavisd-new spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
openssl rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges &lt;br /&gt;
&lt;br /&gt;
unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pure-ftpd-common pure-ftpd-mysql quota quotatool&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=99</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=99"/>
		<updated>2020-01-06T04:52:11Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===1 Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====1.1 Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====1.2 Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====1.3 Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/# hostname -f&lt;br /&gt;
 server1.example.com&lt;br /&gt;
&lt;br /&gt;
====1.4 Sincronizza Orologio di Sistema====&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt -y install ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===2 Installazione dei servizi===&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====2.2 Database====&lt;br /&gt;
Possiamo installare il database, in questo esempio verrà usato MariaDB:&lt;br /&gt;
&lt;br /&gt;
 apt-get -y install mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
Per mettere in sicurezza l'installazione di MariaDB lanciamo il comando &lt;br /&gt;
&lt;br /&gt;
 mysql_secure_installation&lt;br /&gt;
&lt;br /&gt;
rispondiamo alle domande nel seguente modo:&lt;br /&gt;
&lt;br /&gt;
 Change the root password? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 New password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Inserire una nuova password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- Riipeti la password per l'utente root di MariaDB&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove anonymous users? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Disallow root login remotely? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Remove test database and access to it? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
 Reload privilege tables now? [Y/n] &amp;lt;span style=&amp;quot;color:red;&amp;gt;&amp;lt;-- y&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[W.i.p]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Appunti per l'articolo:&lt;br /&gt;
&lt;br /&gt;
postfix postfix-mysql postfix-doc dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd getmail postgrey&lt;br /&gt;
&lt;br /&gt;
amavisd-new spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
openssl rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges &lt;br /&gt;
&lt;br /&gt;
unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
libnet-ldap-perl libauthen-sasl-perl libdbd-mysql-perl &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pure-ftpd-common pure-ftpd-mysql quota quotatool&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=98</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=98"/>
		<updated>2019-12-24T20:55:31Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===1 Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====1.1 Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====1.2 Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====1.3 Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/# hostname -f&lt;br /&gt;
 server1.example.com&lt;br /&gt;
&lt;br /&gt;
====1.4 Sincronizza Orologio di Sistema====&lt;br /&gt;
È una buona idea sincronizzare l'orologio di sistema con '''NTP''' (Network Time Protocol) tramite internet. Lasciando il comando:&lt;br /&gt;
&lt;br /&gt;
 apt -y install ntp&lt;br /&gt;
&lt;br /&gt;
Il sistema sarà così tenuto sincronizzato con l'orario corretto.&lt;br /&gt;
&lt;br /&gt;
===2 Installazione dei servizi===&lt;br /&gt;
Iniziamo ad installare e configurare i vari servizi necessari al nostro Web Server. Verranno inseriti dei link laddove è possibile installare servizi aggiuntivi per aggiungere funzionalità al server, quali E-mail o DNS ecc.&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
Possiamo isnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[W.i.p]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Appunti per l'articolo:&lt;br /&gt;
&lt;br /&gt;
postfix postfix-mysql postfix-doc dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd getmail&lt;br /&gt;
&lt;br /&gt;
amavisd-new spamassassin&lt;br /&gt;
&lt;br /&gt;
clamav clamav-daemon clamav-docs &lt;br /&gt;
&lt;br /&gt;
mariadb-client mariadb-server &lt;br /&gt;
&lt;br /&gt;
openssl rkhunter binutils sudo build-essential autoconf automake libtool bison debhelper daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl apt-listchanges &lt;br /&gt;
&lt;br /&gt;
unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 libnet-ldap-perl libauthen-sasl-perl        libdbd-mysql-perl postgrey&lt;br /&gt;
&lt;br /&gt;
apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pure-ftpd-common pure-ftpd-mysql quota quotatool&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=97</id>
		<title>Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Un_semplice_WebServer_su_Debian_10_(Buster)_con_Apache2,_MariaDB,_PureFTPD_e_ISPConfig_3.x&amp;diff=97"/>
		<updated>2019-12-23T21:19:15Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;{{Procedure_Linux}}  ==Introduzione== La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Procedure_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
La pagina seguente descrive i passaggi necessari per la rapida configurazione di un WebServer basato su OS Debian 10. In questo specifico esempio verrà riportata la procedura per installare Apache2, MariaDB e un PureFTPD, il tutto orchestrato da ISPConfig 3.x.&lt;br /&gt;
&lt;br /&gt;
L'intera guida prevede l'utilizzo dell'utente root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Preliminari===&lt;br /&gt;
Puoi partire da un'installazione minimale di Debian 10. Partiamo con un upgrade dei pacchetti presenti nel caso in cui la macchina sia già preinstallata da un'immagine base.&lt;br /&gt;
&lt;br /&gt;
Innanzitutto, assicurati che il file ''/etc/apt/sources.list'' contenga il repository ''buster/updates'' (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che ''contrib'' e ''non-free'' repositori siano abilitati poiché alcuni pacchetti richiesti non sono nel repositorio principale:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Gli url nello specifico potrebbero apparire diversi in base alla localizzazione del vostro server, se si tratta di una macchina pubblica su un ISP estero, potrebbero puntare a repositori più vicini geograficamente perchè più veloci, quindi se non si è sicuri di modificare l'url specifico del repositorio meglio lasciare quello che troviamo aggiungendo solo i paramtri sopra citati rendendo il file simile a questo:&lt;br /&gt;
&lt;br /&gt;
 deb http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 deb-src http://deb.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 deb http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
 deb-src http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
A questo punto facciamo un aggiornamento, in caso fosse necessario.&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
 apt -y upgrade&lt;br /&gt;
&lt;br /&gt;
====Installazione SSH Server (Opzionale)====&lt;br /&gt;
Se non è stato già installato in precedenza è il momento di procedere con l'installazione di OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
 apt install -y ssh openssh-server&lt;br /&gt;
&lt;br /&gt;
====Installazione editor di testo (Opzionale)====&lt;br /&gt;
Puoi scegliere l'editor che preferisci, per complilare questa guida è stato utilizzato ''nano'' ma se preferisci puoi usare ''vi''. Sui sistemi Debian il ''vi'' di default ha qualche strano comportamento per risolvere il problema installiamo ''vim-nox''&lt;br /&gt;
&lt;br /&gt;
 apt install -y nano vim-nox&lt;br /&gt;
&lt;br /&gt;
====Configurazione hostname====&lt;br /&gt;
L'hostname del tuo server dovrebbe risultare come dominio di terzo livello tipo questo &amp;quot;''server1.miodominio.ext''&amp;quot;. Non usare direttamente un dominio di secondo livello per configurare l'hostname del server come &amp;quot;''miodominio.ext''&amp;quot;, questo potrebbe causare problemi più avanti se decidessi di utilizzare il server per installare e configurare anche i servizi per utilizzare la macchina anche come Mail Server.&lt;br /&gt;
Ci sono due file da configurare per questo passaggio: hostname e hosts.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
che dovrebbe diventare qualcosa di simile per la nostra configurazione di prova &amp;quot;server1.miodominio.ext&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost&lt;br /&gt;
 192.168.0.100   server1.miodominio.ext  server1&lt;br /&gt;
 &lt;br /&gt;
 # The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
 ::1     localhost ip6-localhost ip6-loopback&lt;br /&gt;
 ff02::1 ip6-allnodes&lt;br /&gt;
 ff02::2 ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
Successivamente editiamo il file hostname, qundi&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hostname&lt;br /&gt;
&lt;br /&gt;
sostituendo (se non è già stato inserito correttamente in fase di installazione) il nome dell'host&lt;br /&gt;
&lt;br /&gt;
 server1&lt;br /&gt;
&lt;br /&gt;
a questo punto riavviamo il server&lt;br /&gt;
 &lt;br /&gt;
 systemctl reboot&lt;br /&gt;
&lt;br /&gt;
Una volta effettuato l'accesso nuovamente, controlliamo le modifiche apportate con i comandi:&lt;br /&gt;
 &lt;br /&gt;
 hostname&lt;br /&gt;
 hostname -f&lt;br /&gt;
&lt;br /&gt;
che dovrebbero restituire un output di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 root@server1:/tmp# hostname&lt;br /&gt;
 server1&lt;br /&gt;
 root@server1:/tmp# hostname -f&lt;br /&gt;
 server1.example.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[W.i.p]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=96</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=96"/>
		<updated>2019-08-06T11:11:58Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Benvenuto}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Titoli disponibili==&lt;br /&gt;
&lt;br /&gt;
===Ambienti Windows===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[Robocopy Esempi di Utilizzo]]&lt;br /&gt;
====Scripting====&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ambienti Linux===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[rsync Esempi di Utilizzo]]&lt;br /&gt;
* [[tar Esempi di Utilizzo]]&lt;br /&gt;
&lt;br /&gt;
====Scripting====&lt;br /&gt;
* [[Aggiungere packages.sury.org repository]]&lt;br /&gt;
* [[Certbot (v. 0.28.0+) renew in Crontab]]&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
* [[Un semplice WebServer su Debian 10 (Buster) con Apache2, MariaDB, PureFTPD e ISPConfig 3.x]]&lt;br /&gt;
&lt;br /&gt;
====Configurazioni====&lt;br /&gt;
* [[Profile, history]]&lt;br /&gt;
* [[Bash, Alias]]&lt;br /&gt;
* [[SSHD]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=SSHD&amp;diff=95</id>
		<title>SSHD</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=SSHD&amp;diff=95"/>
		<updated>2019-08-06T11:06:55Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot;ClientAliveInterval 30&amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot;ClientAliveCountMax 99999&amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''ClientAliveInterval''' imposta il numero di secondi il server attende prima di inviare un pacchetto null al client per mantenere viva la connessione&lt;br /&gt;
*'''ClientAliveCountMax''' utile lato server. Questo è il limite per quanto tempo a un client è consentito non rispondere prima di essere disconnesso. Il valore predefinito è 3, come per ClientAliveInterval.&lt;br /&gt;
&lt;br /&gt;
[[Category:shell]]&lt;br /&gt;
[[Category:sshd]]&lt;br /&gt;
[[Category:openssh]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=94</id>
		<title>Bash, Alias</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=94"/>
		<updated>2019-08-06T11:06:27Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per Alias, bash. Per conoscere gli Alias configurati sulla shell corrente, lanciare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ alias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias cp='cp -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias mv='mv -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias rm='rm -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias l.='ls -d .* --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ll='ls -l --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ls='ls --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc''' si aggiunge al file di configurazione una/due righe vuote per staccare dal contenuto già presente nel file&lt;br /&gt;
*'''alias cp='cp -i'''' alias per il comando &amp;quot;copia&amp;quot;, lanciando &amp;quot;cp&amp;quot; viene aggiunto in automatico il parametro -i che sta per &amp;quot;interactive&amp;quot; ovvero viene chiesta conferma in caso di file da sovrascrivere&lt;br /&gt;
*'''mv -i;rm -i''' alias per i comandi muovi e rimuovi con parametro &amp;quot;interactive&amp;quot; come il comando &amp;quot;cp&amp;quot;&lt;br /&gt;
*'''ls''' alias per il comando list files dove &lt;br /&gt;
**'''ls -d''' visualizza lista directory - con ' */'&lt;br /&gt;
**'''ls -l''' visualizza lista con long format - mostra permessi&lt;br /&gt;
**'''ls --color=auto''' visualizza lista con formato colore automatico&lt;br /&gt;
&lt;br /&gt;
Lanciando in fine il comando '''source ~/.bashrc''' si richiama il file di configurazione che viene riletto e applicato senza necessità di riavviare la macchina.&lt;br /&gt;
&lt;br /&gt;
[[Category:bash]]&lt;br /&gt;
[[Category:alias]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=SSHD&amp;diff=93</id>
		<title>SSHD</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=SSHD&amp;diff=93"/>
		<updated>2019-08-06T11:05:44Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;{{Configurazioni_Linux}}   ==Configurazioni== &amp;lt;pre&amp;gt; echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config echo &amp;quot;ClientAliveInterval 30&amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config ech...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot;ClientAliveInterval 30&amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot;ClientAliveCountMax 99999&amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''ClientAliveInterval''' imposta il numero di secondi il server attende prima di inviare un pacchetto null al client per mantenere viva la connessione&lt;br /&gt;
*'''ClientAliveCountMax''' utile lato server. Questo è il limite per quanto tempo a un client è consentito non rispondere prima di essere disconnesso. Il valore predefinito è 3, come per ClientAliveInterval.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=92</id>
		<title>Bash, Alias</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=92"/>
		<updated>2019-08-06T10:45:21Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per Alias, bash. Per conoscere gli Alias configurati sulla shell corrente, lanciare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ alias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias cp='cp -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias mv='mv -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias rm='rm -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias l.='ls -d .* --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ll='ls -l --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ls='ls --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc''' si aggiunge al file di configurazione una/due righe vuote per staccare dal contenuto già presente nel file&lt;br /&gt;
*'''alias cp='cp -i'''' alias per il comando &amp;quot;copia&amp;quot;, lanciando &amp;quot;cp&amp;quot; viene aggiunto in automatico il parametro -i che sta per &amp;quot;interactive&amp;quot; ovvero viene chiesta conferma in caso di file da sovrascrivere&lt;br /&gt;
*'''mv -i;rm -i''' alias per i comandi muovi e rimuovi con parametro &amp;quot;interactive&amp;quot; come il comando &amp;quot;cp&amp;quot;&lt;br /&gt;
*'''ls''' alias per il comando list files dove &lt;br /&gt;
**'''ls -d''' visualizza lista directory - con ' */'&lt;br /&gt;
**'''ls -l''' visualizza lista con long format - mostra permessi&lt;br /&gt;
**'''ls --color=auto''' visualizza lista con formato colore automatico&lt;br /&gt;
&lt;br /&gt;
Lanciando in fine il comando '''source ~/.bashrc''' si richiama il file di configurazione che viene riletto e applicato senza necessità di riavviare la macchina.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=91</id>
		<title>Aggiungere packages.sury.org repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=91"/>
		<updated>2019-08-05T11:22:47Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Script_Linux}}&lt;br /&gt;
[[File:Debian-logo.png|sinistra|100px]]&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Repository per l'aggiunta di PHP 5.6, 7.0-1-2-3 distro Debian 9 (Stretch).&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
===Shell Script===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# To add this repository please do:&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$(whoami)&amp;quot; != &amp;quot;root&amp;quot; ]; then&lt;br /&gt;
    SUDO=sudo&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates&lt;br /&gt;
${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
${SUDO} sh -c 'echo &amp;quot;deb https://packages.sury.org/php/ $(lsb_release -sc) main&amp;quot; &amp;gt; /etc/apt/sources.list.d/php.list'&lt;br /&gt;
${SUDO} apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:Debian 9 Stretch]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=90</id>
		<title>Bash, Alias</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=90"/>
		<updated>2019-08-05T11:21:18Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per Alias, bash. Per conoscere gli Alias configurati sulla shell corrente, lanciare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ alias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias cp='cp -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias mv='mv -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias rm='rm -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias l.='ls -d .* --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ll='ls -l --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ls='ls --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc''' si aggiunge al file di configurazione una/due righe vuote per staccare dal contenuto già presente nel file&lt;br /&gt;
*'''alias cp='cp -i'''' alias per il comando &amp;quot;copia&amp;quot;, lanciando &amp;quot;cp&amp;quot; viene aggiunto in automatico il parametro -i che sta per &amp;quot;interactive&amp;quot; ovvero viene chiesta conferma in caso di file da sovrascrivere&lt;br /&gt;
*'''mv -i;rm -i''' alias per i comandi muovi e rimuovi con parametro '''interactive''&amp;lt;nowiki/&amp;gt;' come il comando &amp;quot;cp&amp;quot;&lt;br /&gt;
*'''ls''' alias per il comando list files dove &lt;br /&gt;
**'''ls -d''' visualizza lista directory - con ' */'&lt;br /&gt;
**'''ls -l''' visualizza lista con long format - mostra permessi&lt;br /&gt;
**'''ls --color=auto''' visualizza lista con formato colore automatico&lt;br /&gt;
&lt;br /&gt;
Lanciando in fine il comando '''source ~/.bashrc''' si richiama il file di configurazione che viene riletto e applicato senza necessità di riavviare la macchina.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=89</id>
		<title>Bash, Alias</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=89"/>
		<updated>2019-08-05T11:19:08Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per Alias, bash.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat ~/.bashrc | grep alias&lt;br /&gt;
# alias ls='ls $LS_OPTIONS'&lt;br /&gt;
# alias ll='ls $LS_OPTIONS -l'&lt;br /&gt;
# alias l='ls $LS_OPTIONS -lA'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias cp='cp -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias mv='mv -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias rm='rm -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias l.='ls -d .* --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ll='ls -l --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ls='ls --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc''' si aggiunge al file di configurazione una/due righe vuote per staccare dal contenuto già presente nel file&lt;br /&gt;
* '''alias cp='cp -i'''' alias per il comando &amp;quot;copia&amp;quot;, lanciando &amp;quot;cp&amp;quot; viene aggiunto in automatico il parametro -i che sta per &amp;quot;interactive&amp;quot; ovvero viene chiesta conferma in caso di file da sovrascrivere&lt;br /&gt;
* '''mv -i;rm -i''' alias per i comandi muovi e rimuovi con parametro ''''''interactive'''''' come il comando &amp;quot;cp&amp;quot;&lt;br /&gt;
* '''ls''' alias per il comando list files dove &lt;br /&gt;
** '''ls -d''' visualizza lista directory - con ' */'&lt;br /&gt;
** '''ls -l''' visualizza lista con long format - mostra permessi&lt;br /&gt;
** '''ls --color=auto''' visualizza lista con formato colore automatico&lt;br /&gt;
&lt;br /&gt;
Lanciando in fine il comando '''source ~/.bashrc''' si richiama il file di configurazione che viene riletto e applicato senza necessità di riavviare la macchina.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=88</id>
		<title>Bash, Alias</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Bash,_Alias&amp;diff=88"/>
		<updated>2019-08-05T11:15:51Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;{{Configurazioni_Linux}}  ==Introduzione== Configurazioni utili per Alias, bash. &amp;lt;pre&amp;gt; $ cat ~/.bashrc | grep alias # alias ls='ls $LS_OPTIONS' # alias ll='ls $LS_OPTIONS -l'...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per Alias, bash.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat ~/.bashrc | grep alias&lt;br /&gt;
# alias ls='ls $LS_OPTIONS'&lt;br /&gt;
# alias ll='ls $LS_OPTIONS -l'&lt;br /&gt;
# alias l='ls $LS_OPTIONS -lA'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias cp='cp -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias mv='mv -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias rm='rm -i'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias l.='ls -d .* --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ll='ls -l --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;alias ls='ls --color=auto'&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''echo &amp;quot; &amp;quot; &amp;gt;&amp;gt; ~/.bashrc''' si aggiunge al file di configurazione una/due righe vuote per staccare dal contenuto già presente nel file&lt;br /&gt;
* '''alias cp='cp -i'''' alias per il comando &amp;quot;copia&amp;quot;, lanciando &amp;quot;cp&amp;quot; viene aggiunto in automatico il parametro -i che sta per &amp;quot;interactive&amp;quot; ovvero viene chiesta conferma in caso di file da sovrascrivere&lt;br /&gt;
* '''mv -i;rm -i''' alias per i comandi muovi e rimuovi con parametro ''''''interactive'''''' come il comando &amp;quot;cp&amp;quot;&lt;br /&gt;
* '''ls''' alias per il comando list files dove &lt;br /&gt;
** '''ls -d''' visualizza lista directory - con ' */'&lt;br /&gt;
** '''ls -l''' visualizza lista con long format - mostra permessi&lt;br /&gt;
** '''ls --color=auto''' visualizza lista con formato colore automatico&lt;br /&gt;
* '''alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' '''&lt;br /&gt;
&lt;br /&gt;
Lanciando in fine il comando '''source ~/.bashrc''' si richiama il file di configurazione che viene riletto e applicato senza necessità di riavviare la macchina.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=87</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=87"/>
		<updated>2019-07-03T11:52:10Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Benvenuto}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Titoli disponibili==&lt;br /&gt;
&lt;br /&gt;
===Ambienti Windows===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[Robocopy Esempi di Utilizzo]]&lt;br /&gt;
====Scripting====&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ambienti Linux===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[rsync Esempi di Utilizzo]]&lt;br /&gt;
* [[tar Esempi di Utilizzo]]&lt;br /&gt;
&lt;br /&gt;
====Scripting====&lt;br /&gt;
* [[Aggiungere packages.sury.org repository]]&lt;br /&gt;
* [[Certbot (v. 0.28.0+) renew in Crontab]]&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
====Configurazioni====&lt;br /&gt;
* [[Profile, history]]&lt;br /&gt;
* [[Bash, Alias]]&lt;br /&gt;
* [[SSHD]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=86</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=86"/>
		<updated>2019-07-03T11:51:58Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Benvenuto}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Titoli disponibili==&lt;br /&gt;
&lt;br /&gt;
===Ambienti Windows===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[Robocopy Esempi di Utilizzo]]&lt;br /&gt;
====Scripting====&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Ambienti Linux===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[rsync Esempi di Utilizzo]]&lt;br /&gt;
* [[tar Esempi di Utilizzo]]&lt;br /&gt;
&lt;br /&gt;
====Scripting====&lt;br /&gt;
* [[Aggiungere packages.sury.org repository]]&lt;br /&gt;
* [[Certbot (v. 0.28.0+) renew in Crontab]]&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
====Configurazioni====&lt;br /&gt;
* [[Profile, history]]&lt;br /&gt;
* [[Bash, Alias]]&lt;br /&gt;
* [[SSHD]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=85</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Pagina_principale&amp;diff=85"/>
		<updated>2019-07-03T11:51:38Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Benvenuto}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Titoli disponibili==&lt;br /&gt;
&lt;br /&gt;
===Ambienti Windows===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[Robocopy Esempi di Utilizzo]]&lt;br /&gt;
====Scripting====&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ambienti Linux===&lt;br /&gt;
====Esempi Comandi====&lt;br /&gt;
* [[rsync Esempi di Utilizzo]]&lt;br /&gt;
* [[tar Esempi di Utilizzo]]&lt;br /&gt;
&lt;br /&gt;
====Scripting====&lt;br /&gt;
* [[Aggiungere packages.sury.org repository]]&lt;br /&gt;
* [[Certbot (v. 0.28.0+) renew in Crontab]]&lt;br /&gt;
&lt;br /&gt;
====Procedure====&lt;br /&gt;
&lt;br /&gt;
====Configurazioni====&lt;br /&gt;
* [[Profile, history]]&lt;br /&gt;
* [[Bash, Alias]]&lt;br /&gt;
* [[SSHD]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Profile,_history&amp;diff=84</id>
		<title>Profile, history</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Profile,_history&amp;diff=84"/>
		<updated>2019-07-03T11:19:56Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per la history.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTFILE&lt;br /&gt;
/home/myuser/.bash_history&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo export HISTSIZE=\&amp;quot;\&amp;quot; &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTCONTROL=erasedups &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTCONTROL=ignoredups &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTTIMEFORMAT=\&amp;quot;%F %T  \&amp;quot; &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo shopt -s histappend &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HISTSIZE===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTSIZE&lt;br /&gt;
500&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTSIZE=&amp;quot;&amp;quot;''' = setta dimensione illimitata.&lt;br /&gt;
&lt;br /&gt;
===HISTCONTROL===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTCONTROL&lt;br /&gt;
ignorespace:ignoredups&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTCONTROL=ignoredups:ignorespace''': &lt;br /&gt;
** '''erasedups'''' = cancella dalla history eventuali ripetizioni di comandi in successione se presenti&lt;br /&gt;
** '''ignoredups''' = ignora i comandi ripetuti in successione tenendo il singolo comando senza tenere quindi il totale delle volte eseguito in successione&lt;br /&gt;
** '''ignorespace''' = ignora i comandi che iniziano con uno spazio, un comando inviato in questo modo &amp;quot; pwd&amp;quot; non verrà registrato a differenza di &amp;quot;pwd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===HISTTIMEFORMAT===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTTIMEFORMAT&lt;br /&gt;
%F %T&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTTIMEFORMAT=\&amp;quot;%F %T  \&amp;quot;''' = imposta il salvataggio dei log dell'history comprensivi di formato data/ora in base ai parametri passati&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
y	year in 2-digit format&lt;br /&gt;
Y	year in 4-digit format&lt;br /&gt;
m	month in 2-digit format&lt;br /&gt;
d	day in 2-digit format&lt;br /&gt;
T	time in 24-hour format&lt;br /&gt;
%r	date in 12 hour AM/PM format&lt;br /&gt;
%D	date in mm/dd/yy format&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===shopt===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con questo comando è possibile cambiare il comportamento opzionale addizionale della Shell.&lt;br /&gt;
&lt;br /&gt;
* '''-s''' = abilita ''optname''&lt;br /&gt;
* '''histappend''' = Se impostato, l'elenco dell'History viene aggiunto al file indicato dal valore della variabile HISTFILE quando la shell viene chiusa, anziché sovrascrivere il file perdendo lo storico ad ogni chiusura della shell.&lt;br /&gt;
&lt;br /&gt;
[[Category:history]]&lt;br /&gt;
[[Category:shell]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Profile,_history&amp;diff=83</id>
		<title>Profile, history</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Profile,_history&amp;diff=83"/>
		<updated>2019-07-03T11:19:32Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per la history.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTFILE&lt;br /&gt;
/home/myuser/.bash_history&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo export HISTSIZE=\&amp;quot;\&amp;quot; &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTCONTROL=erasedups &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTCONTROL=ignoredups &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTTIMEFORMAT=\&amp;quot;%F %T  \&amp;quot; &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo shopt -s histappend &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HISTSIZE===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTSIZE&lt;br /&gt;
500&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTSIZE=&amp;quot;&amp;quot;''' = setta dimensione illimitata.&lt;br /&gt;
&lt;br /&gt;
===HISTCONTROL===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTCONTROL&lt;br /&gt;
ignorespace:ignoredups&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTCONTROL=ignoredups:ignorespace''': &lt;br /&gt;
** '''erasedups'''' = cancella dalla history eventuali ripetizioni di comandi in successione se presenti&lt;br /&gt;
** '''ignoredups''' = ignora i comandi ripetuti in successione tenendo il singolo comando senza tenere quindi il totale delle volte eseguito in successione&lt;br /&gt;
** '''ignorespace''' = ignora i comandi che iniziano con uno spazio, un comando inviato in questo modo &amp;quot; pwd&amp;quot; non verrà registrato a differenza di &amp;quot;pwd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===HISTTIMEFORMAT===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTTIMEFORMAT&lt;br /&gt;
%F %T&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTTIMEFORMAT=\&amp;quot;%F %T  \&amp;quot;''' = imposta il salvataggio dei log dell'history comprensivi di formato data/ora in base ai parametri passati&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
y	year in 2-digit format&lt;br /&gt;
Y	year in 4-digit format&lt;br /&gt;
m	month in 2-digit format&lt;br /&gt;
d	day in 2-digit format&lt;br /&gt;
T	time in 24-hour format&lt;br /&gt;
%r	date in 12 hour AM/PM format&lt;br /&gt;
%D	date in mm/dd/yy format&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===shopt===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con questo comando è possibile cambiare il comportamento opzionale addizionale della Shell.&lt;br /&gt;
&lt;br /&gt;
* '''-s''' = abilita ''optname''&lt;br /&gt;
* '''histappend''' = Se impostato, l'elenco dell'History viene aggiunto al file indicato dal valore della variabile HISTFILE quando la shell viene chiusa, anziché sovrascrivere il file perdendo lo storico ad ogni chiusura della shell.&lt;br /&gt;
&lt;br /&gt;
[[Category:history|shell]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Profile,_history&amp;diff=82</id>
		<title>Profile, history</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Profile,_history&amp;diff=82"/>
		<updated>2019-07-03T11:17:30Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;{{Configurazioni_Linux}}  ==Introduzione== Configurazioni utili per la history. &amp;lt;pre&amp;gt; $ echo $HISTFILE /home/myuser/.bash_history &amp;lt;/pre&amp;gt;  ==Configurazioni== &amp;lt;pre&amp;gt; echo export...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Configurazioni utili per la history.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTFILE&lt;br /&gt;
/home/myuser/.bash_history&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurazioni==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo export HISTSIZE=\&amp;quot;\&amp;quot; &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTCONTROL=erasedups &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTCONTROL=ignoredups &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo export HISTTIMEFORMAT=\&amp;quot;%F %T  \&amp;quot; &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
echo shopt -s histappend &amp;gt;&amp;gt; /etc/profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HISTSIZE===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTSIZE&lt;br /&gt;
500&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTSIZE=&amp;quot;&amp;quot;''' = setta dimensione illimitata.&lt;br /&gt;
&lt;br /&gt;
===HISTCONTROL===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTCONTROL&lt;br /&gt;
ignorespace:ignoredups&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTCONTROL=ignoredups:ignorespace''': &lt;br /&gt;
** '''erasedups'''' = cancella dalla history eventuali ripetizioni di comandi in successione se presenti&lt;br /&gt;
** '''ignoredups''' = ignora i comandi ripetuti in successione tenendo il singolo comando senza tenere quindi il totale delle volte eseguito in successione&lt;br /&gt;
** '''ignorespace''' = ignora i comandi che iniziano con uno spazio, un comando inviato in questo modo &amp;quot; pwd&amp;quot; non verrà registrato a differenza di &amp;quot;pwd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===HISTTIMEFORMAT===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo $HISTTIMEFORMAT&lt;br /&gt;
%F %T&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''export HISTTIMEFORMAT=\&amp;quot;%F %T  \&amp;quot;''' = imposta il salvataggio dei log dell'history comprensivi di formato data/ora in base ai parametri passati&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
y	year in 2-digit format&lt;br /&gt;
Y	year in 4-digit format&lt;br /&gt;
m	month in 2-digit format&lt;br /&gt;
d	day in 2-digit format&lt;br /&gt;
T	time in 24-hour format&lt;br /&gt;
%r	date in 12 hour AM/PM format&lt;br /&gt;
%D	date in mm/dd/yy format&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===shopt===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con questo comando è possibile cambiare il comportamento opzionale addizionale della Shell.&lt;br /&gt;
&lt;br /&gt;
* '''-s''' = abilita ''optname''&lt;br /&gt;
* '''histappend''' = Se impostato, l'elenco dell'History viene aggiunto al file indicato dal valore della variabile HISTFILE quando la shell viene chiusa, anziché sovrascrivere il file perdendo lo storico ad ogni chiusura della shell.&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Configurazioni_Ambiente_Linux&amp;diff=81</id>
		<title>Configurazioni Ambiente Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Configurazioni_Ambiente_Linux&amp;diff=81"/>
		<updated>2019-07-03T09:33:23Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;br /&gt;
&lt;br /&gt;
* [[Profile, history]]&lt;br /&gt;
* [[Bash, Alias]]&lt;br /&gt;
* [[SSHD]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Configurazioni_Ambiente_Linux&amp;diff=80</id>
		<title>Configurazioni Ambiente Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Configurazioni_Ambiente_Linux&amp;diff=80"/>
		<updated>2019-07-03T09:30:48Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;{{Configurazioni_Linux}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Configurazioni_Linux}}&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=79</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=79"/>
		<updated>2019-07-03T09:30:24Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Get-Start MediaWiki|Get-Start MediaWiki&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* SEARCH&lt;br /&gt;
* LANGUAGES&lt;br /&gt;
&lt;br /&gt;
*Linux&lt;br /&gt;
**Esempio Comandi Linux|Comandi&lt;br /&gt;
**Scripting Linux|Scripting&lt;br /&gt;
**Configurazioni Ambiente Linux|Configurazioni&lt;br /&gt;
**Procedure Linux|Procedure&lt;br /&gt;
&lt;br /&gt;
*Windows&lt;br /&gt;
**Esempio Comandi Windows|Comandi&lt;br /&gt;
**Scripting Windows|Scripting&lt;br /&gt;
**Procedure Windows|Procedure&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=78</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=MediaWiki:Sidebar&amp;diff=78"/>
		<updated>2019-07-03T09:29:55Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Get-Start MediaWiki|Get-Start MediaWiki&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* SEARCH&lt;br /&gt;
* LANGUAGES&lt;br /&gt;
&lt;br /&gt;
*Linux&lt;br /&gt;
**Esempio Comandi Linux|Comandi&lt;br /&gt;
**Scripting Linux|Scripting&lt;br /&gt;
**Configuration Linux|Configurazioni&lt;br /&gt;
**Procedure Linux|Procedure&lt;br /&gt;
&lt;br /&gt;
*Windows&lt;br /&gt;
**Esempio Comandi Windows|Comandi&lt;br /&gt;
**Scripting Windows|Scripting&lt;br /&gt;
**Procedure Windows|Procedure&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Template:Configurazioni_Linux&amp;diff=77</id>
		<title>Template:Configurazioni Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Template:Configurazioni_Linux&amp;diff=77"/>
		<updated>2019-07-03T09:28:25Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Categoria: &amp;lt;span style=&amp;quot;color:#808000&amp;quot;&amp;gt;Configurazioni Linux&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Script-linux.png|destra|100px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Configurazioni Linux]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Template:Configurazioni_Linux&amp;diff=76</id>
		<title>Template:Configurazioni Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Template:Configurazioni_Linux&amp;diff=76"/>
		<updated>2019-07-03T09:27:46Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: Creata pagina con &amp;quot;'''Categoria: &amp;lt;span style=&amp;quot;color:#808000&amp;quot;&amp;gt;Configurazioni Linux&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt; 100px &amp;lt;br /&amp;gt;{{-}}  Category:Configurazioni Linux&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Categoria: &amp;lt;span style=&amp;quot;color:#808000&amp;quot;&amp;gt;Configurazioni Linux&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Script-Linux.png|destra|100px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Configurazioni Linux]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=75</id>
		<title>Aggiungere packages.sury.org repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=75"/>
		<updated>2019-07-02T10:49:24Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Script_Linux}}&lt;br /&gt;
[[File:Debian-logo.png|sinistra|100px]]&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Repository per l'aggiunta di PHP 5.6, 7.0-1-2-3 distro Debian.&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
===Shell Script===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# To add this repository please do:&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$(whoami)&amp;quot; != &amp;quot;root&amp;quot; ]; then&lt;br /&gt;
    SUDO=sudo&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates&lt;br /&gt;
${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
${SUDO} sh -c 'echo &amp;quot;deb https://packages.sury.org/php/ $(lsb_release -sc) main&amp;quot; &amp;gt; /etc/apt/sources.list.d/php.list'&lt;br /&gt;
${SUDO} apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=74</id>
		<title>Aggiungere packages.sury.org repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=74"/>
		<updated>2019-07-02T10:49:00Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Script_Linux}}&lt;br /&gt;
[[File:Debian-logo.png|sinistra|100px]]&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Repository per l'aggiunta di PHP 5.6, 7.0-1-2-3 distro Debian.&lt;br /&gt;
&lt;br /&gt;
===Shell Script===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# To add this repository please do:&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$(whoami)&amp;quot; != &amp;quot;root&amp;quot; ]; then&lt;br /&gt;
    SUDO=sudo&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates&lt;br /&gt;
${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
${SUDO} sh -c 'echo &amp;quot;deb https://packages.sury.org/php/ $(lsb_release -sc) main&amp;quot; &amp;gt; /etc/apt/sources.list.d/php.list'&lt;br /&gt;
${SUDO} apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=73</id>
		<title>Aggiungere packages.sury.org repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=73"/>
		<updated>2019-07-02T10:48:25Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Script_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Repository per l'aggiunta di PHP 5.6, 7.0-1-2-3 distro Debian.&lt;br /&gt;
[[File:Linux-logo.png|destra|100px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;{{-}}&lt;br /&gt;
===Shell Script===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# To add this repository please do:&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$(whoami)&amp;quot; != &amp;quot;root&amp;quot; ]; then&lt;br /&gt;
    SUDO=sudo&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates&lt;br /&gt;
${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
${SUDO} sh -c 'echo &amp;quot;deb https://packages.sury.org/php/ $(lsb_release -sc) main&amp;quot; &amp;gt; /etc/apt/sources.list.d/php.list'&lt;br /&gt;
${SUDO} apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=File:Debian-logo.png&amp;diff=72</id>
		<title>File:Debian-logo.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=File:Debian-logo.png&amp;diff=72"/>
		<updated>2019-07-02T10:47:44Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=71</id>
		<title>Aggiungere packages.sury.org repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Aggiungere_packages.sury.org_repository&amp;diff=71"/>
		<updated>2019-07-02T10:46:05Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Script_Linux}}&lt;br /&gt;
&lt;br /&gt;
==Introduzione==&lt;br /&gt;
Repository per l'aggiunta di PHP 5.6, 7.0-1-2-3 distro Debian.&lt;br /&gt;
&lt;br /&gt;
===Shell Script===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# To add this repository please do:&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$(whoami)&amp;quot; != &amp;quot;root&amp;quot; ]; then&lt;br /&gt;
    SUDO=sudo&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates&lt;br /&gt;
${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
${SUDO} sh -c 'echo &amp;quot;deb https://packages.sury.org/php/ $(lsb_release -sc) main&amp;quot; &amp;gt; /etc/apt/sources.list.d/php.list'&lt;br /&gt;
${SUDO} apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:Debian]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.luigidacunto.com/index.php?title=Certbot_(v._0.28.0%2B)_renew_in_Crontab&amp;diff=70</id>
		<title>Certbot (v. 0.28.0+) renew in Crontab</title>
		<link rel="alternate" type="text/html" href="https://wiki.luigidacunto.com/index.php?title=Certbot_(v._0.28.0%2B)_renew_in_Crontab&amp;diff=70"/>
		<updated>2019-07-02T10:44:59Z</updated>

		<summary type="html">&lt;p&gt;Luigi.dacunto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Script_Linux}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
30 5 * */2 * /usr/bin/certbot renew &amp;gt;&amp;gt; /var/log/le-renew.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SSL]]&lt;/div&gt;</summary>
		<author><name>Luigi.dacunto</name></author>
		
	</entry>
</feed>