Android

Protejați apache cu ajutorul criptării pe ubuntu 18.04

Secure Your Apache Server From Attacker and Hacker Part -1

Secure Your Apache Server From Attacker and Hacker Part -1

Cuprins:

Anonim

Let's Encrypt este o autoritate de certificare creată de Internet Security Research Group (ISRG). Oferă certificate SSL gratuite printr-un proces complet automat conceput pentru a elimina crearea manuală, validarea, instalarea și reînnoirea certificatelor.

Certificatele emise de Let's Encrypt sunt încredințate astăzi de toate browserele majore.

În acest tutorial, vom oferi instrucțiuni pas cu pas despre cum să vă securizați Apache cu Let's Encrypt folosind instrumentul certbot de pe Ubuntu 18.04.

Cerințe preliminare

Asigurați-vă că ați îndeplinit următoarele cerințe înainte de a continua cu acest tutorial:

  • Numele de domeniu îndreptat către IP-ul serverului dvs. public. Vom folosi example.com . Aveți Apache instalat cu o gazdă virtuală apache pentru domeniul dvs.

Instalați Certbot

Certbot este un instrument complet funcțional și ușor de utilizat, care poate automatiza sarcinile pentru obținerea și reînnoirea certificatelor SSL Let's Encrypt și configurarea serverelor web. Pachetul certbot este inclus în depozitele implicite Ubuntu.

Actualizați lista de pachete și instalați pachetul certbot:

sudo apt update sudo apt install certbot

Generați grupul puternic Dh (Diffie-Hellman)

Schimbul de chei Diffie – Hellman (DH) este o metodă de a schimba în siguranță cheile criptografice pe un canal de comunicare nesecurizat. Vom genera un nou set de parametri DH de 2048 biți pentru a consolida securitatea:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Dacă doriți, puteți modifica dimensiunea până la 4096 biți, dar în acest caz, generația poate dura mai mult de 30 de minute în funcție de entropia sistemului.

Obținerea unui certificat SSL Encrypt

Pentru a obține un certificat SSL pentru domeniu, vom folosi pluginul Webroot care funcționează prin crearea unui fișier temporar pentru validarea domeniului solicitat în directorul ${webroot-path}/.well-known/acme-challenge . Serverul Let's Encrypt face solicitări HTTP la fișierul temporar pentru a valida dacă domeniul solicitat se rezolvă la serverul unde rulează certificbot.

Pentru a fi mai simplu, vom face o hartă a tuturor cererilor HTTP pentru .well-known/acme-challenge către un singur director, /var/lib/letsencrypt .

Următoarele comenzi vor crea directorul și îl vor putea scrie pentru serverul Apache.

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

Pentru a evita duplicarea codului, creați următoarele două fragmente de configurații:

/etc/apache2/conf-available/letsencrypt.conf

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS /etc/apache2/conf-available/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

Fragmentul de mai sus folosește cipurile recomandate de Cipherli.st, permite OCSP Stapling, HTTP Strict Transport Security (HSTS) și aplică puține anteturi HTTP concentrate pe securitate.

Înainte de a activa fișierele de configurare, asigurați-vă că atât mod_ssl cât și mod_ssl sunt activate prin emiterea:

sudo a2enmod ssl sudo a2enmod headers

Apoi, activați fișierele de configurare SSL rulând următoarele comenzi:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Activați modulul HTTP / 2, care va face site-urile dvs. mai rapide și mai robuste:

sudo a2enmod

Reîncărcați configurația Apache pentru ca modificările să aibă efect:

sudo systemctl reload apache2

Acum, putem rula instrumentul Certbot cu pluginul webroot și să obținem fișierele de certificare SSL tastând:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Dacă certificatul SSL este obținut cu succes, certificbot va imprima următorul mesaj:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-10-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

Acum că aveți fișierele de certificare, modificați configurația gazdei virtuale a domeniului după cum urmează:

/etc/apache2/sites-available/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration

Cu configurația de mai sus, forțăm HTTPS și redirecționăm de la www la versiunea non-www. Nu vă rugăm să reglați configurația în funcție de nevoile dvs.

Reîncărcați serviciul Apache pentru ca modificările să aibă efect:

sudo systemctl reload apache2

Acum puteți deschide site-ul dvs. utilizând https:// și veți observa o pictogramă de blocare verde.

Reînnoire automată Let's Encrypt SSL certificate

Certificatele Let's Encrypt sunt valabile 90 de zile. Pentru a reînnoi automat certificatele înainte de expirare, pachetul certbot creează un cronjob care rulează de două ori pe zi și reînnoiește automat orice certificat cu 30 de zile înainte de expirarea acestuia.

După ce certificatul este reînnoit, trebuie să reîncărcăm serviciul Apache. Adăugați --renew-hook "systemctl reload apache2" la fișierul /etc/cron.d/certbot astfel încât să arate astfel:

/etc/cron.d/certbot

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"

Pentru a testa procesul de reînnoire, puteți utiliza comutatorul --dry-run :

sudo certbot renew --dry-run

Dacă nu există erori, înseamnă că procesul de reînnoire a avut succes.

Concluzie

În acest tutorial, ați folosit certificatul de client Let's Encrypt, pentru a descărca certificate SSL pentru domeniul dvs. De asemenea, ați creat fragmente Apache pentru a evita duplicarea codului și ați configurat Apache pentru a utiliza certificatele. La sfârșitul tutorialului, ați configurat un cronjob pentru reînnoirea automată a certificatelor.

apache ubuntu hai să criptăm certbot ssl

Acest post este o parte din seria cum se instalează-lampa-stivă-pe-ubuntu-18-04.

Alte postări din această serie:

• Cum se instalează Apache pe Ubuntu 18.04 • Cum se configurează gazdele virtuale Apache pe Ubuntu 18.04 • Securează Apache cu ajutorul cifrării pe Ubuntu 18.04 • Cum se instalează MySQL pe Ubuntu 18.04 • Cum se instalează PHP pe Ubuntu 18.04