app.invialaqui.it: documentazione

Caratteristiche instanza Cloud

Server Cloud Aruba Cloud acquistato da noi AMW-IMMSTANCATI su IT1

S.o.: Debian 5.10.92-1 (2022-01-18) x86_64

Server web: Apache2

Applicazione: Angular 10.1.4 (Framework JavaScript/TypeScript di Google)

Compilato con Node.js (ambiente di sviluppo su server Amalfi in cartella Dropbox)

percorso: /var/www/html/farmacie

Certificati

Percorsi

SSLCertificateFile      /etc/apache2/ssl/app.invialaqui.it/app.invialaqui.it.crt

SSLCertificateKeyFile /etc/apache2/ssl/app.invialaqui.it/app.invialaqui.it.key

# SSLCACertificateFile /etc/apache2/ssl/STAR_conserva_cloud.ca-bundle.crt

Al rinnovo di certificato pluriennale sostituire semplicemente app.invialaqui.it.crt nella cartella con il nuovo.

La procedura testata è:

  • Rinnovare su Register.it il certificato pluriennare già acquistato (dati in possesso di Giorgio)
  • Scaricare il certificato nella cartella DropBox Invialaqui App\Certificati\[anno]
  • Collegarsi SFTP e rinominare app.invialaqui.it.crt in [anno]- app.invialaqui.it.crt
  • Effettuare upload del nuovo certificato
  • Collegarsi SSH e stoppare e avviare apache:

systemctl stop apache2

systemctl start apache2

  • Verificare il nuovo certificato con un browser

Database

L’applicazione utilizza un utente mysql con privilegi limitati e non espone le credenziali amministrative

L’amministratore per scopi di sviluppo è conservato sul nostro KP.

Hardening lato server

Per le limitazioni riguardanti IP si individuano 3 indirizzi statici considerati sicuri (corrispondono a sede Salerno, sede Amalfi e sede Farmacia)

151.84.40.145, 151.3.217.123, 185.30.83.131

PHPmyadmin

L’accesso a PHPmyadmin è permesso esclusivamente agli IP autorizzati

Configurazione

Aggiunto in

/etc/apache2/conf-available/phpmyadmin.conf

prima di </Directory>

<RequireAny>
Require ip 127.0.0.1
Require ip ::1
Require ip 151.84.40.145
Require ip 151.3.217.123
Require ip 185.30.83.131
</RequireAny>

Es:

sudoedit /etc/phpmyadmin/apache.conf

dopo aver salvato:

sudo apache2ctl configtest

Se è tutto ok:

sudo systemctl reload apache2

SSH

La connessione SSH è limitata agli IP autorizzati tramite firewall del s.o. (UFW).

TODO: sostituzione autenticazione SSH root+password con certificato

Configurazione

sudo ufw insert 1 allow proto tcp from 151.84.40.145 to any port 22 comment 'SSH autorizzato'
sudo ufw insert 1 allow proto tcp from 151.3.217.123 to any port 22 comment 'SSH autorizzato'
sudo ufw insert 1 allow proto tcp from 185.30.83.131 to any port 22 comment 'SSH autorizzato'

sudo ufw status numbered

Quindi rimozione accesso globale

sudo ufw delete allow 22/tcp
sudo ufw status numbered

Fail2Ban

Esiste una jail standard sshd

Hardening lato applicativo

Programmate attività di hardening e messa in sicurezza

Attività schedulate

Le attività programmate sono gestite tramite cron

Per modificarle

crontab -e

Quelle predefintite sono:

*/5 * * * * curl --silent -k https://app.invialaqui.it/server/api/v1/manager/schedule >/dev/null 2>&1
*/10 * * * * curl --silent -k https://app.invialaqui.it/server/api/v1/manager/mailbox >/dev/null 2>&1

Per disabilitarle temporaneamente inserire un # prima di ogni riga

Per verificarle

crontab -l
systemctl status cron --no-pager