Secure Your Apache Server From Attacker and Hacker Part -1
Cuprins:
- Cerințe preliminare
- Instalați Certbot
- Generați grupul puternic Dh (Diffie-Hellman)
- Obținerea unui certificat SSL Encrypt
- Reînnoire automată Let's Encrypt SSL certificate
- Concluzie
Let's Encrypt este o autoritate de certificare gratuită, automatizată și deschisă, dezvoltată de Grupul de cercetare în domeniul securității internetului (ISRG). Certificatele emise de Let’s Encrypt sunt valabile timp de 90 de zile de la data emiterii și sunt încredințate de toate browserele principale de astăzi.
În acest tutorial, vom acoperi pașii necesari pentru a instala un certificat SSL gratuit Encrypt SSL pe un server CentOS 7 care rulează Apache ca server web. Vom folosi utilitatea certbot pentru a obține și reînnoi certificatele Let's Encrypt.
Cerințe preliminare
Asigurați-vă că ați îndeplinit următoarele cerințe înainte de a continua cu acest tutorial:
- Puneți un nume de domeniu îndreptat către IP-ul serverului dvs. public. Vom folosi
example.comApache este instalat și funcționează pe serverul dvs.. Aveți gazda virtuală Apache pentru domeniul dvs..Porturile 80 și 443 sunt deschise în firewallul dvs.
Instalați următoarele pachete care sunt necesare pentru un server web criptat SSL:
Instalați Certbot
Certbot este un instrument care simplifică procesul de obținere a certificatelor SSL de la Let's Encrypt și auto-activarea HTTPS pe serverul dvs.
Pachetul certbot este disponibil pentru instalare de la EPEL. Dacă depozitul EPEL nu este instalat pe sistemul dvs., îl puteți instala folosind următoarea comandă:
sudo yum install epel-release
După ce depozitul EPEL este activat, instalați pachetul certbot tastând:
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. Generați un nou set de parametri DH 2048 biți pentru a consolida securitatea:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Puteți modifica dimensiunea până la 4096 de 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 domeniul nostru, 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
.
Execută thr următoarele comenzi pentru a crea directorul și a face să fie scris pentru serverul Apache:
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Pentru a evita duplicarea codului, creați următoarele două fragmente de configurații:
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
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
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.
Reîncărcați configurația Apache pentru ca modificările să aibă efect:
sudo systemctl reload
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-12-07. 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:
CentOS 7 este livrat cu versiunea 2.4.6 de la Apache, care nu include directiva
SSLOpenSSLConfCmd
. Această directivă este disponibilă doar pe Apache 2.4.8 și este utilizată pentru configurarea parametrilor OpenSSL, cum ar fi schimbul de chei Diffie – Hellman (DH).
Va trebui să creăm un nou fișier combinat folosind certificatul Let's Encrypt SSL și fișierul DH generat. Pentru a face acest lucru, tastați:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem
Acum că totul este configurat, modificați configurația gazdei virtuale a domeniului după cum urmează:
/etc/httpd/conf.d/example.com.conf
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.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.
Reporniți serviciul Apache pentru ca modificările să aibă efect:
sudo systemctl restart
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 a expira, vom crea un cronjob care va rula de două ori pe zi și va reînnoi automat orice certificat cu 30 de zile înainte de expirarea acestuia.
Rulați comanda
crontab
pentru a crea un nou cronjob care va reînnoi certificatul, creează un nou fișier combinat, inclusiv cheia DH și reporniți apache:
sudo crontab -e
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
Salvați și închideți fișierul.
Pentru a testa procesul de reînnoire, puteți utiliza comanda certbot urmată de 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 centos hai să criptăm certbot sslAceastă postare face parte din seria Instalare LAMP Stack pe CentOS 7.
Alte postări din această serie:
• Cum se instalează Apache pe CentOS 7 • Instalează MySQL pe CentOS 7 • Cum se configurează gazdele virtuale Apache pe CentOS 7 • Se securizează Apache cu ajutorul criptării pe CentOS 7Protejați apache cu ajutorul criptării centos 8
Acest tutorial explică cum se instalează un certificat SSL gratuit Encrypt SSL pe CentOS 8 care rulează Apache ca server web. Vom folosi instrumentul certbot pentru a obține și reînnoi certificatele.
Protejați apache cu ajutorul criptării pe Debian 9
Acest tutorial vă va ghida în procesul de obținere a unei versiuni gratuite Let's Encrypt folosind instrumentul certbot de pe Debian 9. Vom arăta, de asemenea, cum să configurați Apache pentru a utiliza noul certificat SSL și pentru a activa HTTP / 2
Protejați apache cu ajutorul criptării pe ubuntu 18.04
Î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.







