Come installare la piattaforma del carrello LiteCart su Ubuntu 16.04
LiteCart è una piattaforma di carrello degli acquisti gratuita e open source scritta in PHP, jQuery e HTML 5. È un software di e-commerce semplice, leggero e facile da usare
L'obiettivo di questo tutorial è quello di sbarazzarsi delle connessioni SSH pubbliche e RDP pubbliche. Mettendo tutto questo dietro un client HTML5 molto conveniente, possiamo aggiungere un livello di sicurezza per accedere al nostro cloud.
Guacamole registra anche qualsiasi accesso remoto, quindi l'accesso non autorizzato diventa molto più tracciabile.
Nota: per Let's encrypt (opzione B) abbiamo bisogno di un nome di dominio. Se non ne avete uno, è possibile saltare questo passaggio e basta eseguire l'opzione A .
Inizia ruotando un VPS nella zona Vultr desiderata. Un 1024 MB
VPS sarà sufficiente, poiché Guacamole non è così esigente.
Inizia abilitando la rete privata sul VPS. Questo è ben documentato qui
Prima induriamo un po 'l'immagine. E controlliamo se l'immagine che è stata fornita è stata ufw
abilitata.
root@vultr:~# ufw status
Status: inactive
Per impostazione predefinita è disabilitato, quindi dovremo aggiungere alcune regole.
Cominciamo con la configurazione di queste porte.
ufw allow 22/tcp
ufw allow 8080/tcp
Quindi abilitare il firewall.
ufw enable
Non preoccuparti se ricevi un avviso. Se hai aggiunto la porta 22
, non dovrai affrontare alcun problema.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Una volta abilitato, richiedi lo stato del firewall e vedremo la nostra configurazione delle porte.
ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
Prima di iniziare l'installazione è necessario aggiornare e aggiornare il repository. Con pacchetti come Tomcat
, basato su Java, esiste un flusso costante di bug rilevati e le relative correzioni associate. Di solito è una buona idea farlo prima invece di correre direttamente nella nostra installazione.
apt-get update
apt-get -y upgrade
Il prossimo è tutte le dipendenze. Guacamole ne ha parecchi. (Un elenco completo delle dipendenze e delle relative funzioni è disponibile qui ). Continuiamo installandoli tutti.
apt-get -y install build-essential tomcat8 freerdp libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libswscale-dev libvncserver-dev libpulse-dev libssl-dev
Quando il programma di installazione richiede una password di root di MySQL, fornirne una e assicurarsi di prenderne nota. Questa password verrà utilizzata in seguito per creare il database Guacamole.
Ora che abbiamo tutte le nostre dipendenze, possiamo continuare con il download di Guacamole. Lo stesso Guacamole si presenta principalmente in forma sorgente e non binaria. Innanzitutto ci sposteremo nella /tmp
cartella per evitare di ingombrare altre parti del disco. Quindi scarica tutto il codice sorgente.
Esistono quattro file sorgente / binari da scaricare:
guacamole-0.9.13-incubating.war
: Questa è l'applicazione web. Un WAR
file è un pacchetto Web compresso che fornisce un singolo sito Web ospitato su un sito Web Tomcatguacamole-server-0.9.13-incubating.tar.gz
: Questo file fornirà l' guacd
applicazione di backend . Questo crea i flussi attraverso RDP e SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Utilizzeremo un database MySQL locale, quindi abbiamo bisogno del JDBC
connettore associato .mysql-connector-java-5.1.43.tar.gz
: Senza un driver di database il connettore JDBC non fa nulla. Questo file è fornito dal team MySQL stesso.Nota: download risolti sul server più vicino .
cd /tmp
wget http://apache.belnet.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz
Dopo aver scaricato tutti questi file, estrarre i file tar.gz
.
tar -xzvf guacamole-server-0.9.13-incubating.tar.gz
tar -xzvf guacamole-auth-jdbc-0.9.13-incubating.tar.gz
tar -xzvf mysql-connector-java-5.1.43.tar.gz
Ora che abbiamo estratto tutto il codice sorgente, creiamo alcune guacamole
cartelle, che verranno utilizzate dall'applicazione guacamole e dalle sue dipendenze.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Tutto è pronto per i nostri nuovi binari di Guacamole. Ora possiamo iniziare il processo di compilazione e installazione. Passa alla cartella Server Guacamole estratta.
cd /tmp/guacamole-server-0.9.13-incubating
Configurare l'applicazione per creare anche un init.d
file per eseguirlo come servizio in un secondo momento.
./configure --with-init-dir=/etc/init.d
Il comando dovrebbe terminare con un 'sì' su tutte le librerie e protocolli. Altrimenti, torna indietro e controlla il comando apt-get per assicurarti di non perdere nessun pacchetto.
------------------------------------------------
guacamole-server version 0.9.13-incubating
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
Successivamente compila e installa il server Gucamole.
make && make install
Una volta fatto tutto ciò, esegui ldconfig
per ricostruire il percorso di ricerca per le librerie che sono state aggiunte.
ldconfig
Procedere utilizzando il systemctl
programma di installazione guacd
(Guacamole Daemon) per l'avvio all'avvio.
systemctl enable guacd
I binari di Guacamole sono ora installati. Ora prepareremo l'applicazione Web per Tomcat.
Inizia spostando il war
file nella guacamole
cartella che abbiamo appena creato, una volta fatto crea un collegamento logico nella directory tomcat per puntare al nostro war
file.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Quindi abbiamo bisogno del connettore mysql e JDBC. Il driver JDBC è necessario nella extensions
cartella, il connettore nella lib
cartella.
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar /etc/guacamole/lib/
cp guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /etc/guacamole/extensions/
Una volta che il connettore e JDBC sono a posto, dobbiamo modificare il tocamt8
file. Questo file contiene molte tomcat8
impostazioni e nel nostro caso dobbiamo aggiungere la GUACAMOLE_HOME
variabile alla fine del file.
nano /etc/default/tomcat8
Aggiungi con il seguente.
GUACAMOLE_HOME=/etc/guacamole
Il prossimo è la creazione del database. Guacamole memorizza la sua configurazione di connessione in un database, non all'interno di un file.
Accedi con quello che root password
hai usato durante l'installazione.
mysql -u root -p
Il primo passo è creare un database chiamato 'guacamole_db'.
create database guacamole_db;
Quindi eseguire il create user
comando. Questo creerà un utente con una password mysupersecretpassword
, questo utente potrà connettersi solo da localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Concedere le CRUD
operazioni a questo utente per il database guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Svuota i privilegi ed esci dalla shell.
flush privileges;
exit
Termina aggiungendo lo schema di Guacamole al nostro database appena creato.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Fatto ciò, dobbiamo modificare il guacamole.properties
file. Questo file contiene la nostra configurazione del server MySQL creata di recente.
nano /etc/guacamole/guacamole.properties
Aggiungi i dettagli e le credenziali della connessione MySQL.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Termina creando un collegamento simbolico alla cartella di condivisione Tomcat, poiché è qui che il WAR
file cercherà queste proprietà.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Termina riavviando il tomcat8
server e avvia il guacd
demone del server.
service tomcat8 restart
service guacd start
È possibile verificare utilizzando il comando status.
service tomcat8 status
service guacd status
Ora puoi navigare sul tuo VPS sulla porta 8080
http://<yourpublicip>:8080/guacamole/
Usa il nome utente guacadmin
e la stessa password guacadmin
. Ciò ti garantirà l'accesso a un server Guacamole vuoto.
Fai clic nell'angolo in alto a destra del tuo nome utente guacadmin
e seleziona Settings
. Una volta che sei nella pagina delle impostazioni vai alla Users
scheda e seleziona l'utente guacadmin
.
Ora cambia la tua password in qualcos'altro o crea un nuovo utente amministratore ed elimina quello predefinito guacadmin
.
Questi sono i passaggi finali: ripulire dopo aver finito.
Elimina il codice sorgente e i file binari scaricati dalla /tmp
cartella.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Inoltre, rendere l'applicazione Web Guacamole quella predefinita. Nell'ecosistema Tomcat, l'applicazione che ottiene la ROOT
cartella è quella che viene avviata per impostazione predefinita quando si accede al sito Web.
Elimina il vecchio ROOT
segnaposto.
rm -rf /var/lib/tomcat8/webapps/ROOT
E crea un collegamento simbolico affinché il server guacamole sia ROOT
quello.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Ciò richiede un riavvio di Tomcat.
service tomcat8 restart
Modifica il tomcat8/server.xml
file e cambia la porta del connettore.
nano /etc/tomcat8/server.xml
Cerca il Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
E sostituisci 8080
con 80
.
Per impostazione predefinita, tomcat non consente l'associazione delle porte di seguito 1024
. Per abilitare ciò, dobbiamo dire a tomcat8 di creare collegamenti autenticati.
Modifica il default
file di tomcat8 e decommenta la AUTHBIND
linea e usa l'opzioneyes
nano /etc/default/tomcat8
AUTHBIND=yes
Fatto ciò, intall authbind
.
apt-get install authbind
Configuralo in modo che la porta 80
possa essere rivendicata da tomcat8.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Consenti porta 80
attraverso il firewall ed elimina la regola per 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Riavvia Tomcat.
service tomcat8 restart
Ecco fatto, ora Guacamole dovrebbe essere in esecuzione sul porto 80
.
Tomcat non è davvero una delle applicazioni migliori e più robuste da utilizzare certbot
. Fortunatamente Nginx lo è. Faremo solo delega di Tomcat a Nginx. Utilizza la funzionalità out of the box di certbot al costo di sacrificare un po 'di RAM.
apt-get install nginx
Una volta installato, modifica la configurazione predefinita.
nano /etc/nginx/sites-available/default
Elimina tutte le configurazioni di esempio e aggiungi la seguente configurazione.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Ciò creerà un proxy per il sito Web in esecuzione su 8080
. Riavvia Nginx e abilitalo all'avvio.
systemctl restart nginx
systemctl enable nginx
Controlla se tutto funziona.
systemctl status nginx
Disabilitare la porta di prova 8080
e consentire il traffico sulla porta 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Prima di poter usare certbot
, dobbiamo aggiungere il corretto ppa
al sistema contenente i nostri pacchetti certbot.
add-apt-repository ppa:certbot/certbot
Premere " ENTER
" per accettare la modifica della configurazione.
Aggiorna apt
per raccogliere i nuovi pacchetti.
apt-get update
Infine, installa il modulo Nginx per l'assegnazione dei certificati.
apt-get -y install python-certbot-nginx
Configura il firewall per consentire HTTPS
.
ufw allow 443/tcp
Prima di poter richiedere nuovi certificati, abbiamo bisogno di un nome DNS.
nano /etc/nginx/sites-available/default
Aggiungi la seguente server_name
impostazione.
server_name rdp.example.com;
Modificare la configurazione per riflettere questa nuova impostazione.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Controlla se tutto funziona e riavvia Nginx.
nginx -t
service nginx restart
Ora richiedi un certificato con certbot.
certbot --nginx -d rdp.example.com
Fornisci la tua e-mail e accetta le domande poste dall'installatore. (Puoi tranquillamente scegliere " No
" per condividere la tua email.) Certbot ti chiederà automaticamente di cosa ha bisogno HTTPS
. Useremo l'opzione 2: redirect to HTTPS
.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
L'ultima cosa che faremo è aggiornare i DH
parametri. Questi sono, per impostazione predefinita, un po 'deboli per gli standard del 2017.
Creane di nuovi.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Successivamente, aggiungili al sito predefinito in Nginx.
nano /etc/nginx/sites-available/default
Aggiungili alla configurazione del server.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Controlla errori.
nginx -t
Applicare le modifiche riavviando il server.
service nginx restart
Pulisci la vecchia 8080
regola
ufw delete allow 8080/tcp
Nota: se dovessi ricevere un "502 Bad Gateway" dovrai riavviare tomcat8 .
service tomcat8 restart
Let's Encrypt certificati richiedono il rinnovo. Per questo possiamo creare un lavoro cron. Inizia modificando il crontab
.
crontab -e
Aggiungi la seguente riga.
00 2 * * * /usr/bin/certbot renew --quiet
Questo verificherà alle 2:00 AM se alcuni certificati richiedono un rinnovo e li rinnoverà se lo fanno.
Vai al tuo server Guacamole (o http://<ip>/
o https://rdp.example.com)
).
Per questo test, avrai bisogno di altre due istanze: una VM Linux e un'altra Windows Server 2012 R2 con un IP privato abilitato su entrambi.
Fai clic su " username
" nell'angolo in alto a destra e vai a " Settings
". Quindi vai a " Connections
" e seleziona " New Connection
".
Compila le seguenti impostazioni (puoi lasciare le altre predefinite).
Name: Windows Server 2012 R2
Location: ROOT
Protocol: RDP
Maximum number of connections: 1
Maximum number of connections per user: 1
Parameters > Hostname: 10.99.0.12
Parameters > Port: 3389
Username: Administrator
Password: <password> (provided by Vultr)
Security mode: Any
Ignore server certificate: <checked>
Premi " save
" e torna alla schermata principale. Ora puoi fare clic sulla " Windows Server 2012 R2
" connessione e sarà RDP a questa macchina.
Premi " Ctrl+Shift+Alt
". Questo farà apparire il menu sul lato. Qui puoi disconnettere o eseguire altre attività amministrative per Guacamole.
Fai clic username
su in alto nel menu e vai a " Settings
". Quindi vai alla Connections
scheda " " e seleziona " New Connection
".
Compila le seguenti impostazioni (puoi lasciare le altre predefinite).
Name: Linux
Location: ROOT
Protocol: SSH
Maximum number of connections: 5
Maximum number of connections per user: 2
Parameters > Hostname: 10.99.0.11
Parameters > Port: 22
Username: root
Password: <password> (provided by Vultr)
Premi " save
" e torna alla schermata principale. Ora puoi fare clic su questa connessione appena creata ed essere connesso al tuo server Linux tramite SSH.
Ora disponi di un gateway HTML5 Web RDP / SSH. Ora puoi firewall l'accesso pubblico RDP e SSH della tua piattaforma e accedere al tuo ambiente da qualsiasi browser moderno. Per ulteriori informazioni su ciò che Guacamole può offrire, c'è un ottimo video che mostra tutte le possibilità della piattaforma qui .
LiteCart è una piattaforma di carrello degli acquisti gratuita e open source scritta in PHP, jQuery e HTML 5. È un software di e-commerce semplice, leggero e facile da usare
NFS è un file system basato su rete che consente ai computer di accedere ai file attraverso una rete di computer. Questa guida spiega come esporre le cartelle su NF
Introduzione Durante questo tutorial imparerai come configurare un livello base di sicurezza su una nuovissima macchina virtuale Vultr VC2 che esegue Ubunt
McMyAdmin è un pannello di controllo del server Minecraft utilizzato per amministrare il tuo server. Sebbene McMyAdmin sia gratuito, ci sono più edizioni, alcune delle quali sono pai
TeamTalk è un sistema di conferenza che consente agli utenti di avere conversazioni audio / video di alta qualità, chat di testo, trasferire file e condividere schermate. Io
Usi un sistema diverso? Introduzione CyberPanel è uno dei primi pannelli di controllo sul mercato che è sia open source che utilizza OpenLiteSpeed. Che cosa
Introduzione Sensu è una soluzione di monitoraggio gratuita e open source che può essere utilizzata per monitorare server, applicazioni e vari servizi di sistema. Sensu i
PhpBB è un programma di bacheca open source. Questo articolo ti mostrerà come installare phpBB su un server web Apache su Ubuntu 16.04. Era scritto
Avere un solo utente, che è root, può essere pericoloso. Quindi risolviamolo. Vultr ci offre la libertà di fare ciò che vogliamo con i nostri utenti e i nostri server
Vultr offre diversi modi per accedere al tuo VPS per configurare, installare e utilizzare. Credenziali di accesso Le credenziali di accesso predefinite per il tuo VPS ar
Usi un sistema diverso? Fuel CMS è un sistema di gestione dei contenuti basato su CodeIgniter. Il suo codice sorgente è ospitato su GitHub. Questa guida ti mostrerà come t
Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare
Golang è un linguaggio di programmazione sviluppato da Google. Grazie alla sua versatilità, semplicità e affidabilità, Golang è diventato uno dei più popolari
Usi un sistema diverso? Apache OpenMeetings è unapplicazione per conferenze Web open source. È scritto in Java e supporta più server di database. io
IRC è popolare tra gli sviluppatori e gli utenti di software open source. Uno degli svantaggi di IRC è quando non sei in linea, potresti perdere Importan
Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud
Usando un sistema diverso? RabbitMQ è un broker di messaggi open source ampiamente utilizzato scritto nel linguaggio di programmazione Erlang. Come middleware orientato ai messaggi
Usi un sistema diverso? TLS 1.3 è una versione del protocollo TLS (Transport Layer Security) che è stato pubblicato nel 2018 come standard proposto in RFC 8446
Questo articolo ti insegnerà come impostare una prigione chroot su Debian. Presumo che tu stia usando Debian 7.x. Se usi Debian 6 o 8, questo potrebbe funzionare, bu
Introduzione Un modo semplice per configurare un server VPN su Debian è con PiVPN. PiVPN è un programma di installazione e wrapper per OpenVPN. Crea semplici comandi per te t
Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane
ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.
Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+
Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.
Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più
13 strumenti commerciali per l'estrazione dei dati dai Big Data
Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true
Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.
Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1
L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.