- Set virtual box like this:
- Log into Linux Centos and edit the file:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 and modify the configuration like this in order to have a fix ip in your network and permit you to enter with a ssh console. (you have to modify the ip according to your network configuration.)
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 UUID=6d9a4e86-ae47-456d-97ae-93ce156f9cd9 DEVICE=enp0s3 ONBOOT=yes IPADDR=192.168.178.131 NETMASK=255.255.255.0 GATEWAY=192.168.178.1 BNS=8.8.8.8
- Modify the file /etc/resolv.conf like :
nameserver 8.8.8.8
- restart the network service :service network restart
- check the configuration: ifconfig or ping your gateway
Usare un Content Delivery Network (CDN): come e perché
Nota Bene: Questo articolo non è più aggiornato da almeno 6 mesi perciò verifica le informazioni contenute che potrebbero essere obsolete.
Oggi analizziamo i motivi per cui è opportuno configurare e attivare una CDN per distribuire meglio i contenuti presenti sul nostro sito web.
Un Content Delivery Network può fornire una marcia in più ad un sito internet, grazie ad un sistema di caching reverse proxy, ottimizzandone così la velocità, l’esperienza utente e conseguentemente la SEO on-site grazie ad una migliore indicizzazione dei contenuti presenti sul dominio da parte dei motori di ricerca.
Naturalmente i visitatori non si renderanno conto del fatto che viene servita loro una copia del sito e non il contenuto originale.
Sommario
- Cos’è un Content Delivery Network
- Come configurare una CDN su Cloudflare
- Configurazione dell’account di Cloudflare
- Analisi dei risultati
Scopriamo come e perchè configurare una #CDN con Cloudflare su un nostro sito webCONDIVIDI IL TWEET
Cos’è un Content Delivery Network
Una CDN è un sistema di server, collegati fra loro tramite internet, che dialogano e collaborano in maniera tale da realizzare un sistema distribuito per la fornitura di contenuti all’utenza.
Quando un utente richiede un contenuto, dietro ad una CDN, il sistema instraderà la richiesta verso il nodo più vicino in modo da risparmiare tempo nel trasferimento dei dati.
In particolare una CDN è utile quando i nostri contenuti devono essere distribuiti in tutto il mondo o quando il server sui cui è ospitato il nostro sito è distante dal target del sito stesso.
Un ulteriore servizio che può fornire una CDN è quello di mitigare attacchi DDos, che vengono distribuiti sull’intera rete non sovraccaricando il server che ospita il nostro sito fino a farlo collassare e di mantenere online il nostro sito, fornendo una copia cache, quando il server su cui è ospitato collassa o viene spento per manutenzione o problemi tecnici.
Cloudflare
Una delle più famose CDN è Cloudflare, una impresa statunitense creata nel 2009 che, oltre a fornire un servizio di Content Delivery Network offre diversi servizi accessori.
In questi ultimi mesi Cloudflare ha sviluppato un nuovo datacenter a Milano, in Italia, fornendo così un nodo veloce e vicino a tutta l’utenza della penisola.
Cloudflare offre in maniera gratuita il servizio basico, che andremo ad analizzare in questo articolo, ma con una spesa di 20 €/mese potremo attivare un servizio di ottimizzazione dedicato per i dispositivi mobile, in modo da incrementare la velocità di caricamento delle pagine di un sito web quando richieste da smartphone o tablet.
Perché configurare una CDN
Come abbiamo visto è utile configurare una CDN per:
- distribuire meglio i nostri contenuti nel mondo;
- migliorare la sicurezza del nostro sito grazie al firewall integrato, se compreso nella CDN (Cloudflare offre questo servizio);
- proteggere il nostro sito da attacchi DDos;
- migliorare globalmente la SEO del nostro sito, grazie al incremento delle perfomance delle nostre pagine;
Classica comunicazione tra client e sito
Comunicazione tra client e sito dietro a CDN
Come configurare una CDN su Cloudflare
Vediamo insieme come configurare una CDN mediante Cloudflare e il suo servizio gratuito.
Creazione Account
Come prima cosa è necessario creare un account su Cloudflare, che ci permetterà di gestire uno o più siti.
Visitiamo quindi la pagina di registrazione che richiede nome utente e password per l’account. A seguito di questa azione riceveremo una mail con un codice per attivare l’account.
Aggiunta di un sito
Dopo aver fatto accesso al servizio di CDN mediante il nostro nuovo e fiammante account aggiungiamo un sito al pannello. Se necessario è possibile aggiungere più di un sito, separando i domini dalla virgola.
Il dominio che vogliamo aggiungere va inserito nella forma pura, ossia nomedominio.tld. Nel caso di www.posizionamento-seo.com inserirò quindi posizionamento-seo.com.
Premiamo quindi sul bottone Begin Scan e aspettiamo che il servizio faccia la scansione del nostro dominio.
Una volta che il servizio ha completato la scansione del nostro dominio premiamo sul bottone Continue Setup.
Nella pagina che comparirà dobbiamo poi selezionare per quali servizi attivare la nostra CDN.
Per aiutarci Cloudflare ci mostra i servizi che ha rilevato sul nostro server, a seguito di scansione automatica, per cui offre dei consigli di attivazione o meno della Content Delivery Network.
Di nostro possiamo modificare questa preselezione automatica premendo sull’icona della nuvoletta con la freccia. Come è facilmente comprensibile nuvola grigia e freccia che la oltrepassa vuol dire servizio NON filtrato dalla CDN, mentre il contrario (CDN attiva) è contrassegnato dall’icona della nuova arancione con freccia passante.
Di suo Cloudflare non attiva il servizio sui protocolli imap, pop, smtp e webmail, tutti relativi alla gestione della posta elettronica.
In caso di configurazioni particolari e non rilevate automaticamente possiamo poi aggiungere dei record per poi selezionare se attivare o meno il servizio di CDN.
Una volta effettuata la nostra selezione premiamo sul bottone Continue, in fondo alla pagina.
Selezioniamo poi il piano che vogliamo attivare, nel mio caso per questo tutorial ho scelto quello gratuito. Naturalmente in seguito potremo passare ai piani a pagamento, nel caso ci sia necessità di investire budget in maggiore velocità e performance per il nostro sito web. Premiamo nuovamente sul bottone Continue.
Cloudflare ci dirà quindi che è necessario modificare i DNS del nostro dominio affinché il servizio possa funzionare.
Modifica dei DNS
Siamo arrivati al passaggio più “complicato”: la modifica dei DNS del nostro sito. Questa operazione è necessaria in quanto permetterà all’utenza di transitare da una copia cache delle pagine del nostro sito, presente su un nodo di cloudflare, in fase di richiesta di un nostro contenuto.
La modifica dei DNS varia da host ad host e per effettuarla è necessario intervenire nel pannello con cui abbiamo configurato il nostro dominio per farlo puntare al nostro server. Non è quindi una modifica da effettuare sul sito.
Cloudflare ci viene in aiuto, infatti per gli host più utilizzati nel mondo fornisce un tutorial alla modifica dei DNS.
E’ questo il caso di gandi.net, il provider su cui ho configurato il dominio di posizionamento-seo.com, che utilizzerò come esempio in questo articolo. Per gli altri host dovrete fare riferimento al vostro provider o nel caso sia fornita alle linee guida presenti su Cloudflare.
Come cambiare i DNS su Gandi.net
Gandi.net, di cui ho parlato di sfuggita in alcuni miei precedenti articoli, offre un pannello semplificato per la gestione dei DNS e di cui Cloudflare presenta degli screenshot per spiegare nel dettaglio la procedura.
La ripropongo qui, riscritta da me in Italiano.
Dopo aver fatto accesso alla piattaforma di gestione del nostro host, con una utenza con diritti di modifica in relazione al dominio di cui vogliamo aggiornare i DNS apriamo la schermata relativa al dominio.
Sulla sinistra, nella zona dedicata ai Name servers premiamo su Modify servers.
Si aprirà così una nuova pagina con i DNS che stiamo utilizzando in questo momento e che, se non abbiamo già modificato in passato, sono quelli standard di Gandi.
a.dns.gandi.net
b.dns.gandi.net
c.dns.gandi.net
Inseriamo quindi i DNS proposti da Cloudflare e premiamo su Submit per effettuare l’aggiornamento.
drew.nd.cloudflare.com
tia.nd.cloudflare.com
Ritorneremo così nella schermata procedente, ma un box ci dirà che i DNS si stanno aggiornando. La procedura impiegherà qualche minuto, ma attenzione la propagazione effettiva dei DNS avverrà solamente dopo 24 ore, periodo durante il quale il sito potrebbe non venire visualizzato. In realtà questoproblema non dovrebbe sussitere perché ci penserà Cloudflare a far visualizzare una copia del nostro sito mentre i DNS si propagano.
Torniamo quindi sul pannello di gestione del nostro sito su Cloudflare, dove vedremo che la CDN è in attesa di poter utilizzare i nuovi DNS e se vogliamo sfidare la sorte, possiamo provare a forzare un nuovo controllo sui DNS in uso premendo sul bottone Recheck Nameservers.
Una volta che Cloudflare si aggancerà ai nuovi DNS del nostro dominio potremo incominciare a configurare il nostro account.
Configurazione dell’account di Cloudflare
In particolare se, come nel mio caso, il nostro dominio ha un certificato SSL proprietarioè necessario configurare bene la sezione relativa alla Criptazione. Per questo, nel pannello di Cloudflare, premiamo su Cripto. Per far si che i nostri certificati SSL non vengano filtrati dalla CDN, rendendo il nostro sito NON visualizzabile per colpa di un errore SSL sarà necessario selezionare nel box dedicato alla SSL come tipo di comunicazione di criptazione, nella select a discesa presente, l’impostazione Full (strict). Il resto lo lasciamo come di default, quindi:
- HTTP Strict Transport Security (HSTS) non abilitata (il bottone Enable HSTS deve rimanere blu)
- Authenticated Origin Pulls lo lasciamo su Off
- in ultimo non è necessario creare dei certificati con Cloudflare
Dopo che Cloudflare avrà analizzato i nostri certificati SSL nel pannello, nella sezione dedicata a SSL, comparirà una label verde con scritto ACTIVE CERTIFICATE e più in basso potremo vedere i certificati acquisiti.
SSL e Cloudflare
Anche nella versione gratuita Cloudflare permette di creare gratuitamente dei certificati SSL per il nostro dominio. Sappiate che è possibile utilizzare questa opzione per crittare la comunicazione con il nostro dominio e trasformare il nostro dominio in HTTPS, al fine di migliorare il ranking sul motore di ricerca Google.
In un prossimo articolo vedremo nel dettaglio la configurazione di Cloudflare per il piano free.
Analisi dei risultati
Analizziamo ora come è cambiata la perfomance di questo sito a seguito della configurazione di una CDN.
Analisi prima della configurazione della CDN
Utilizzo per effettuare le analisi Web Page Test che oltre ad analizzare come vengono serviti i byte del mio sito nei differenti momenti mi segnala la presenza della CDN. Entrambi i test sono stati condotti facendo uscire la connessione da un server in Irlanda e simulando l’uso di browser Chrome dietro a connessione DSL.
Analisi dopo la configurazione della CDN
Come potete vedere nello screenshot qui sopra oltre al fatto che viene segnalata l’effettiva presenza della CDN a servire i miei contenuti sono notevolmente scesi, a livello di secondi:
- il tempo di caricamento;
- il tempo in cui viene servito il primo byte;
- il tempo di caricamento del primo byte;
- il tempo di carimento dell’intero documento;
Da notare che non viene più segnalata la presenza della compressione gzip delle immagini, pur se presente e configurata sul server.
How to find process listening over a port
List all tcp ports using netstat -at
netstat -at
netstat -ltnp
-p means list all the programs run over the port
List all udp ports using netstat -au
netstat -aup
List only listening ports using netstat -l
netstat -lp
List only the listening UNIX Ports using netstat -lx
netstat -lxp
lsof command (LiSt Open Files) is used to list all open files on a Linux system. To install it on your system, type the command below.
$ sudo yum install lsof #RHEL/CentOS $ sudo apt install lsof #Debian/Ubuntu $ sudo dnf install lsof #Fedora 22+
To find the process/service listening on a particular port, type (specify the port).
$ lsof -i :80
Install nmap and check which ports are open.Centos 7
yum install nmap
now scan the ports with :
nmap -sT -O localhost
result:
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000083s latency).
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 972 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
111/tcp open rpcbind
143/tcp open imap
443/tcp open https
783/tcp open spamassassin
993/tcp open imaps
995/tcp open pop3s
1080/tcp open socks
1081/tcp open pvuniwien
2005/tcp open deslogin
2009/tcp open news
3005/tcp open deslogin
3306/tcp open mysql
5432/tcp open postgresql
8009/tcp open ajp13
8080/tcp open http-proxy
8081/tcp open blackice-icecap
9009/tcp open pichat
9080/tcp open glrpc
9090/tcp open zeus-admin
9100/tcp open jetdirect
10024/tcp open unknown
10025/tcp open unknown
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=6.40%E=4%D=7/23%OT=21%CT=1%CU=41542%PV=N%DS=0%DC=L%G=Y%TM=59744F1
OS:C%P=x86_64-redhat-linux-gnu)SEQ(SP=101%GCD=1%ISR=105%TI=Z%TS=A)SEQ(SP=10
OS:1%GCD=1%ISR=106%TI=Z%II=I%TS=A)OPS(O1=MFFD7ST11NW7%O2=MFFD7ST11NW7%O3=MF
OS:FD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFFD7ST11NW7%O6=MFFD7ST11)WIN(W1=AAAA%W2=
OS:AAAA%W3=AAAA%W4=AAAA%W5=AAAA%W6=AAAA)ECN(R=Y%DF=Y%T=40%W=AAAA%O=MFFD7NNS
OS:NW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%
OS:DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%
OS:O=%RD=0%Q=)T6(R=N)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%D
OS:F=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=4
OS:0%CD=S)
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.22 seconds
now scan from external :
nmap -sT -O <ip>
result
Starting Nmap 7.50 ( https://nmap.org ) at 2017-07-23 09:30 CEST
Nmap scan report for web.site (<ip>)
Host is up (0.035s latency).
rDNS record for <ip>: mail. web.site
Not shown: 978 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
111/tcp open rpcbind
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp filtered microsoft-ds
993/tcp open imaps
995/tcp open pop3s
1080/tcp open socks
1081/tcp open pvuniwien
2009/tcp open news
3306/tcp filtered mysql
8009/tcp open ajp13
8081/tcp open blackice-icecap
9009/tcp open pichat
9080/tcp open glrpc
Device type: general purpose|media device|WAP|storage-misc
Running (JUST GUESSING): Linux 3.X|4.X|2.6.X (89%), Asus embedded (86%), Synology DiskStation Manager 5.X (86%)
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:3.x cpe:/h:asus:rt-n56u cpe:/o:linux:linux_kernel:3.4 cpe:/o:linux:linux_kernel:3.10 cpe:/a:synology:diskstation_manager:5.2 cpe:/o:linux:linux_kernel:2.6.32
Aggressive OS guesses: Linux 3.2 – 4.8 (89%), Linux 3.18 (88%), Linux 3.16 (87%), Linux 3.13 or 4.2 (87%), XBMCbuntu Frodo v12.2 (Linux 3.X) (87%), ASUS RT-N56U WAP (Linux 3.4) (86%), Linux 3.13 (86%), Linux 3.12 (86%), Linux 3.8 – 3.11 (86%), Linux 4.10 (86%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 6 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.47 seconds
check now for LISTENING port:
Next, check for information about the port using netstat or lsof. To check for port 834 using netstat, use the following command:
netstat -anp | grep 834 |
result :
tcp 0 0 127.0.0.1:9168 127.0.0.1:47834 TIME_WAIT –
unix 2 [ ACC ] STREAM LISTENING 397083455 343/amavisd (ch1-av /var/spool/amavisd/amavisd.sock
unix 2 [ ] STREAM CONNECTED 481728342 25062/ruby
unix 3 [ ] STREAM CONNECTED 407881834 4920/dovecot
unix 2 [ ] STREAM CONNECTED 481808349 25062/ruby
The lsof command reveals similar information since it is also capable of linking open ports to services:
lsof -i | grep 834 |
To check if the port is associated with the official list of known services, type:
cat /etc/services |
to check the users log in use command : who
which process are running over a port eg 8080
netstat -nlp | grep 8080