Az Apache biztonságossá tétele a Let's Encrypt segítségével Debian 12, 11 vagy 10 rendszeren

Az Apache webszerverének Let's Encrypt tanúsítvánnyal történő biztosítása kritikus fontosságú a webhely és az adatok védelme szempontjából. Ez az útmutató végigvezeti Önt ezen a folyamaton Debian 12 Bookworm, Debian 11 Bullseye és Debian 10 Buster rendszeren. Itt a hangsúly a robusztus biztonsági intézkedések bevezetésén van, miközben leegyszerűsíti a kiszolgálókezeléssel gyakran összefüggő bonyolultságokat.

A Let's Encrypt with Apache használatának legfontosabb előnyei a Debian rendszeren:

  • Költséghatékony: A Let's Encrypt ingyenes SSL-tanúsítványokat kínál, így mindenki számára elérhetővé teszi a magas szintű biztonságot.
  • Automatizált megújítások: A Let's Encrypt automatizálási funkciói leegyszerűsítik az SSL-tanúsítványok beszerzését és megújítását, csökkentve a biztonsági hibák kockázatát.
  • Fokozott biztonság: A Let's Encrypt SSL-tanúsítványai erős titkosítást biztosítanak az átvitt adatok számára, javítva az Apache-szerver általános biztonságát a Debian rendszeren.
  • Széleskörű kompatibilitás: A legtöbb modern webböngésző felismeri a Let's Encrypt tanúsítványokat, így biztosítva a zökkenőmentes felhasználói élményt.
  • Proaktív biztonsági intézkedések: A rendszeres frissítésekkel és szigorú szabályzatokkal a Let's Encrypt megbízható védelmi vonalat jelent a különféle kiberfenyegetésekkel szemben.

Ezt az útmutatót követve megtanítjuk, hogyan védheti meg Apache-kiszolgálóját Debian rendszeren a Let's Encrypt használatával, növelve ezzel a webszolgáltatások biztonságát és megbízhatóságát. Maradjon velünk, ha részletes útmutatást szeretne kapni ennek az alapvető biztonsági beállításnak a megvalósításáról.

Telepítse a Certbot for Apache-t

Ez a rész a Certbot for Apache telepítésére összpontosít egy Debian-alapú Linux rendszerre. A Certbot egy hatékony eszköz, amely leegyszerűsíti az SSL-tanúsítványok beszerzését és konfigurálását a Let's Encrypt szolgáltatásból. Kéz a kézben működik az Apache-val, lehetővé téve a HTTPS engedélyezését a szervereken.

Frissítse a Debian csomagtárolókat az Apache Certbot telepítése előtt

A Certbot telepítése előtt döntő fontosságú, hogy a Debian rendszeren lévő csomagtárolók és a meglévő csomagok frissítésre kerüljenek. A rendszer naprakészen tartása biztosítja a Certbot és a függőségek legújabb verziójának telepítését. A csomagtárolók frissítéséhez és a meglévő csomagok frissítéséhez hajtsa végre a következő parancsokat:

sudo apt update
sudo apt upgrade

Telepítse a Certbot és az Apache beépülő modult

Most, hogy a Debian rendszer naprakész, a következő lépés a Certbot telepítése az Apache beépülő modullal együtt. Az Apache beépülő modul nélkülözhetetlen, mivel lehetővé teszi a Certbot számára, hogy együttműködjön az Apache-val, automatizálja a tanúsítványok megszerzését és megújítását, és konfigurálja az Apache-t azok használatára. Futtassa a következő parancsot a Certbot és az Apache bővítmény telepítéséhez:

sudo apt install certbot python3-certbot-apache

Az Apache beállítása és a tanúsítvány titkosítása

Ebben a részben végigvezetjük Önt az Apache konfigurálásán és a Let's Encrypt SSL-tanúsítvány létrehozásán a domain számára a Certbot segítségével. Kitérünk a szerverkonfiguráció biztonságát javító különféle lehetőségek használatára is.

Certbot konfiguráció és SSL-tanúsítvány-generálás Apache-on Debiannal

A Certbot és annak Apache beépülő moduljának telepítése után a következő művelet a Certbot futtatása az SSL-tanúsítvány létrehozásához a domain számára. A parancs számos lehetőséget tartalmaz a biztonság optimalizálására.

Íme a használt opciók lebontása:

  • --apache: Megadja, hogy a használt webszerver Apache.
  • --agree-tos: Jelzi, hogy egyetért a Let's Encrypt szolgáltatási feltételeivel.
  • --redirect: Állandó 301-es átirányítást állít be HTTP-ről HTTPS-re, biztosítva az összes forgalom titkosítását.
  • --hsts: Strict-Transport-Security fejlécet ad hozzá a biztonságos kapcsolatok kikényszerítéséhez.
  • --staple-ocsp: Engedélyezi az OCSP tűzést, javítva az SSL-egyeztetési teljesítményt a felhasználói adatvédelem megőrzése mellett.
  • --email: Ez az az e-mail cím, amelyre az SSL-tanúsítványával kapcsolatos értesítéseket, például megújítási emlékeztetőket és biztonsági figyelmeztetéseket kap.

Cserélje ki you@example.com a tényleges e-mail címével és yourdomain.com a domain nevével. Hajtsa végre a következő parancsot:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d yourdomain.com

Sikeres végrehajtás után a Certbot létrehoz egy SSL-tanúsítványt a domainhez, konfigurálja az Apache-t a használatára, és alkalmazza a megadott biztonsági beállításokat. A szerver mostantól biztonságos lesz, és a webhely HTTPS-en keresztül elérhető lesz.

Alternatív Certbot konfigurálási módszer Apache segítségével

Azok számára, akik az irányítottabb és interaktívabb megközelítést részesítik előnyben, a Certbot alternatív módszert kínál, amely információkat és konfigurációs lehetőségeket kér. A módszert a következőképpen kell használni:

Futtassa a következő parancsot:

sudo certbot --apache

A Certbot interaktív munkamenetet kezdeményez. Az alábbiakban bemutatjuk azokat az utasításokat, amelyekkel találkozhat:

  • Adja meg az e-mail címet (sürgős megújítási és biztonsági figyelmeztetésekhez használjuk): Adja meg e-mail címét. A Let's Encrypt ezt fogja használni a tanúsítványaival kapcsolatos kommunikációhoz.
  • Fogadja el a Let's Encrypt szolgáltatási feltételeket: A rendszer felkéri, hogy fogadja el a szolgáltatási feltételeket. Az egyetértéshez írja be az A-t.
  • Ossza meg e-mailjeit az Electronic Frontier Foundation-lel, hogy értesüljön munkájukról: Ha támogatni szeretné az EFF-et, adja meg az Y értéket, ha igen. Ellenkező esetben adjon be N-t a no.
  • Mely nevekre szeretné aktiválni a HTTPS-t?: A Certbot megjeleníti azokat a domain neveket, amelyekhez tanúsítványt tud kiállítani. Írja be a domainjének megfelelő számokat, vagy hagyja üresen mindenki számára.
  • Válassza ki a megfelelő műveletet: A következő lehetőségek közül választhat:
    • 1: Próbálja meg újratelepíteni a tanúsítványt
    • 2: A tanúsítvány megújítása és cseréje (7 naponként legfeljebb 5)
    • Válassza ki az igényeinek megfelelő opciót.
  • Válassza ki, hogy szeretné-e átirányítani a HTTP forgalmat HTTPS-re: A rendszer megkérdezi, hogy szeretné-e átirányítani a HTTP forgalmat HTTPS-re. Ez a legtöbb webhelyen javasolt:
    • 1: Nincs átirányítás – Ne végezzen további módosításokat a webszerver konfigurációján.
    • 2: Átirányítás – Minden kérés átirányítása biztonságos HTTPS-hozzáférésre.
    • A nagyobb biztonság érdekében válassza a 2. lehetőséget.

Miután végignézte az összes utasítást, és a folyamat befejeződött, a Certbot az említetthez hasonló üzenetet ad ki, amely jelzi a tanúsítványfájlok helyét és további információkat.

Az SSL-tanúsítvány megújításának automatizálása a Cron segítségével

Ebben a részben beállítunk egy automatikus megújítási folyamatot az SSL-tanúsítványokhoz a Cron segítségével, amely a Linux-alapú rendszerek beépített feladatütemezője. Titkosítsuk az SSL-tanúsítványokat, amelyek élettartama 90 nap, és a szolgáltatási fennakadások elkerülése érdekében feltétlenül meg kell újítani lejáratuk előtt. A Certbot parancsot ad a tanúsítványok megújításához, és ezt a feladatot a Cron segítségével automatizálhatjuk.

A tanúsítvány megújítása szárazon

A megújítási folyamat automatizálása előtt döntő fontosságú annak biztosítása, hogy a megújítási parancs a várt módon működjön. Ezt száraz futtatással tehetjük meg, amely a tanúsítványok megváltoztatása nélkül szimulálja a megújítási folyamatot. Futtassa a következő parancsot a száraz futás elindításához:

sudo certbot renew --dry-run

Az automatikus tanúsítványmegújítások ütemezése

Ha a száraz futás hibamentesen zajlik, akkor ütemezhetjük az automatikus tanúsítvány megújításokat. A Cron segítségével minden nap egy adott időpontban futtatjuk a megújítási parancsot.

Először nyissa meg a crontab fájlt szerkesztés módban a következő paranccsal:

sudo crontab -e

A fájl végéhez adja hozzá a következő sort a napi megújítási ellenőrzés ütemezéséhez 02:30-kor:

30 2 * * * /usr/bin/certbot renew --quiet

A --quiet Az opció biztosítja, hogy a megújítási folyamat csendben fusson a háttérben, anélkül, hogy bármilyen hibát eredményezne, kivéve, ha hiba történik.

A sor hozzáadása után mentse el és zárja be a fájlt. Ezzel beállította az SSL-tanúsítványok automatikus megújítási folyamatát. A Cron naponta ellenőrzi, hogy esedékes-e a tanúsítványok megújítása, és szükség szerint megújítja azokat. Ez biztosítja, hogy az Apache-kiszolgáló mindig érvényes SSL-tanúsítványokat használjon, fenntartva a biztonságos felhasználói kapcsolatot.

Javítsa az Apache SSL konfigurációját

Ebben a részben az SSL-konfiguráció módosításával optimalizáljuk az Apache-szerver teljesítményét. Ez magában foglalja az SSL-tanúsítványok beállítását, a HTTP/2 engedélyezését, a HTTP Strict Transport Security (HSTS) megvalósítását, valamint az SSL-protokollok és titkosítások konfigurálását. Ehhez a konfigurációhoz Apache modulokra van szükség mod_ssl, mod_socache_shmcb, mod_rewrite, és mod_headers.

Szerkessze az Apache konfigurációs fájlt

A kezdéshez hozzá kell férnie a domain konfigurációs fájljához az Apache-on belül. Hajtsa végre a következő parancsot:

sudo nano /etc/apache2/sites-available/your_domain.conf

Ez megnyitja a tartomány konfigurációs fájlját a Nano nevű szövegszerkesztőben. Miután belépett, végezze el a következő beállításokat a VirtualHost blokkon belül.

A HTTP átirányítása HTTPS-re

Először is beállítunk egy szabályt, amely az összes HTTP-forgalmat HTTPS-re irányítja át, így biztosítva, hogy a szerverhez vezető összes kapcsolat biztonságos. Ez a szabály kizárja a kéréseket a .well-known/acme-challenge/ könyvtár, amelyet a Certbot használ a tartomány érvényesítéséhez a tanúsítványkibocsátási folyamat során. Adja hozzá a következő konfigurációt a <VirtualHost *:80> tömb:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

Engedélyezze az SSL-t és adja meg a tanúsítványokat

Következő, belül <VirtualHost *:443> blokkot, engedélyezzük az SSL-t, és megadjuk az SSL-tanúsítvány és a privát kulcs elérési útját:

SSLEngine on
SSLCertificateFile      /path/to/signed_cert_and_intermediate_certs
SSLCertificateKeyFile   /path/to/private_key

Cserélje ki /path/to/signed_cert_and_intermediate_certs az SSL-tanúsítványfájl elérési útjával, és /path/to/private_key a privát kulcs fájl elérési útjával.

HTTP/2 engedélyezése

A teljesítmény javítása érdekében engedélyezzük a HTTP/2-t, ha elérhető:

Protocols h2 http/1.1

Végezze el a HSTS-t

A biztonságos kapcsolatok érvényre juttatása érdekében egy Strict-Transport-Security fejlécet is hozzáadunk:

Header always set Strict-Transport-Security "max-age=63072000"

Konfigurálja az SSL protokollokat és titkosításokat

Ezután meghatározzuk, hogy mely SSL protokollokat és titkosításokat kell használni a magas szintű biztonság és kompatibilitás érdekében:

SSLProtocol                        all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite                  ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
SSLHonorCipherOrder    off
SSLSessionTickets            off

OCSP tűzés engedélyezése

Végül engedélyezzük az OCSP tűzést, egy olyan funkciót, amely javítja az SSL-egyeztetés teljesítményét, miközben megőrzi a látogatók adatait:

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

Érvényesítse és alkalmazza a módosításokat

Ha végzett, mentse el és lépjen ki a fájlból. Létfontosságú az Apache konfiguráció érvényesítése, hogy ne legyenek szintaktikai hibák. Futtassa ezt a parancsot az ellenőrzéshez:

sudo apachectl configtest

Ha nincs probléma, alkalmazza a módosításokat az Apache újratöltésével:

sudo systemctl restart apache2

Következtetés

Ebben a cikkben az Apache biztonságának kérdésével foglalkoztunk a Let's Encrypt SSL-tanúsítványokkal a Debian 10-es, 11-es és 12-es verzióján. Kiemeltük az SSL-tanúsítványok jelentőségét a kiszolgálók és az ügyfelek közötti biztonságos kommunikáció biztosításában. A Certbot telepítésétől kezdve megvizsgáltuk, hogyan szerezhet be ingyenes SSL-tanúsítványt a Let's Encrypt-től. Megbeszéltük továbbá az Apache SSL-tanúsítvány kihasználására való konfigurálását, a megújítási folyamat automatizálását cron-feladatokon keresztül, valamint a biztonság megerősítését az Apache konfigurációval.

Utolsó javaslatként a naplók figyelése és a rendszer rendszeres frissítése elengedhetetlen. Ezek a gyakorlatok biztosítják, hogy tájékozódjon a lehetséges problémákról, és hogy szervere meg legyen védve a legújabb biztonsági résekkel szemben.

Joshua James

Szólj hozzá!