Weboldal keresés

Önálló Apache-kiszolgáló beállítása névalapú virtuális tárhely használatával SSL-tanúsítvánnyal – 4. rész


Az LFCE (röviden: Linux Foundation Certified Engineer) egy képzett szakember, aki rendelkezik a hálózati szolgáltatások telepítéséhez, kezeléséhez és hibaelhárításához szükséges szakértelemmel Linux rendszereken, és felelős a rendszerarchitektúra tervezése, megvalósítása és folyamatos karbantartása.

Ebben a cikkben bemutatjuk, hogyan konfigurálhatja az Apache-t webtartalom kiszolgálására, és hogyan állíthat be névalapú virtuális gazdagépeket és SSL-t, beleértve az önaláírt tanúsítványt is.

Bemutatkozik a Linux Foundation Certification Program (LFCE).

Megjegyzés: Ez a cikk nem egy átfogó útmutató az Apache-ról, hanem inkább egy kiindulópont a témával kapcsolatos önálló tanuláshoz az LFCE< számára. vizsga. Emiatt ebben az oktatóanyagban sem foglalkozunk az Apache terheléselosztásával.

Lehet, hogy már ismeri ugyanazokat a feladatokat más módon is, ami OK, tekintve, hogy a Linux Foundation Certification szigorúan teljesítmény alapú. Így mindaddig, amíg „elvégzi a munkát”, jó esélye van a sikeres vizsgára.

Követelmények

Kérjük, tekintse meg a jelenlegi sorozat 1. részét („A hálózati szolgáltatások telepítése és az automatikus indítás konfigurálása rendszerindításkor”) az Apache telepítésével és indításával kapcsolatos utasításokért.

Mostanra már telepítve kell lennie az Apache webszervernek, és futnia kell. Ezt a következő paranccsal ellenőrizheti.

ps -ef | grep -Ei '(apache|httpd)' | grep -v grep

Megjegyzés: A fenti parancs ellenőrzi az apache vagy a httpd (a leggyakoribb nevek a webdémon) a futó folyamatok listája között. Ha az Apache fut, a következőhöz hasonló kimenetet kap.

Az Apache telepítésének tesztelésének és működésének ellenőrzésének végső módja egy webböngésző indítása, és a kiszolgáló IP-címére mutat. A következő képernyőnek vagy legalább egy üzenetnek kell megjelennie, amely megerősíti, hogy az Apache működik.

Apache konfigurálása

Az Apache fő konfigurációs fájlja a disztribúciótól függően különböző könyvtárakban található.

/etc/apache2/apache2.conf 		[For Ubuntu]
/etc/httpd/conf/httpd.conf		[For CentOS]
/etc/apache2/httpd.conf 		[For openSUSE]

Szerencsére a konfigurációs direktívák rendkívül jól dokumentálva vannak az Apache projekt weboldalán. Ebben a cikkben ezek közül néhányra hivatkozunk.

Oldalak kiszolgálása önálló kiszolgálón Apache segítségével

Az Apache legalapvetőbb használata a weboldalak önálló szerveren való kiszolgálása, ahol még nincs virtuális gazdagép konfigurálva. A DocumentRoot direktíva meghatározza azt a könyvtárat, amelyből az Apache a weblapok dokumentumait fogja kiszolgálni.

Ne feledje, hogy alapértelmezés szerint az összes kérés ebből a könyvtárból származik, de használhat szimbolikus hivatkozásokat és/vagy álneveket is, amelyek más helyekre mutathatnak.

Hacsak nem egyezik az Alias direktívával (amely lehetővé teszi, hogy a dokumentumokat a helyi fájlrendszerben tárolják a DocumentRoot által meghatározott könyvtár helyett), a szerver hozzáfűzi a kért URL elérési útját. a dokumentum gyökeréhez a dokumentum elérési útjának létrehozásához.

Például a következő DocumentRoot alapján:

Amikor a webböngésző a [Szerver IP-címére vagy a állomásnévre]/lfce/tecmint.html mutat, a szerver megnyitja a következőt: /var/ www/html/lfce/tecmint.html (feltételezve, hogy létezik ilyen fájl), és mentse az eseményt a hozzáférési naplójába 200 (OK) válasszal.

A hozzáférési napló általában a /var/log mappában található egy reprezentatív név alatt, például access.log vagy access_log. Még az is előfordulhat, hogy ezt a naplót (és a hibanaplót is) egy alkönyvtárban találja (például /var/log/httpd a CentOS-ben). Ellenkező esetben a sikertelen esemény továbbra is naplózásra kerül a hozzáférési naplóban, de 404 (nem található) választ ad.

Ezenkívül a sikertelen események rögzítésre kerülnek a hibanaplóban:

A hozzáférési napló formátuma az Ön igényei szerint testreszabható a fő konfigurációs fájlban található LogFormat direktíva használatával, míg a hibanaplóval nem teheti meg ugyanezt. .

A hozzáférési napló alapértelmezett formátuma a következő:

LogFormat "%h %l %u %t \"%r\" %>s %b" [nickname]

Ahol a százalékjel előtti betűk mindegyike azt jelzi, hogy a szerver naplóz egy bizonyos információt:

String

Leírás

 %h

 Távoli gazdagépnév vagy IP-cím

 %l

 Távoli napló neve

 %u

 Távoli felhasználó, ha a kérés hitelesített

 %t

 A kérelem beérkezésének dátuma és időpontja

 %r

 Kérés első sora a szerverhez

 %>s

 A kérelem végleges állapota

 %b

 A válasz mérete [bájt]

és a becenév egy opcionális álnév, amely más naplók testreszabására használható anélkül, hogy újra be kellene írnia a teljes konfigurációs karakterláncot.

További lehetőségekért tekintse meg a LogFormat direktívát [Custom log formats section] az Apache dokumentumokban.

Mindkét naplófájl (access és error) nagyszerű forrást jelent az Apache szerveren történt események egy pillantással történő gyors elemzéséhez. Mondanunk sem kell, hogy ezek az első eszközök, amelyeket a rendszergazda a problémák elhárítására használ.

Végül egy másik fontos direktíva a Listen, amely arra utasítja a szervert, hogy fogadja el a bejövő kéréseket a megadott porton vagy cím/port kombináción:

Ha csak egy portszám van megadva, az apache az összes hálózati interfészen figyeli az adott portot (a * helyettesítő jel az „összes hálózati interfész” jelzésére szolgál).

Ha mind az IP-cím, mind a port meg van adva, akkor az apache az adott port és hálózati interfész kombinációját figyeli.

Kérjük, vegye figyelembe (amint azt az alábbi példákban látni fogja), hogy több Listen direktíva is használható egyszerre több cím és port megadására, amelyekre figyelni kell. Ez a beállítás arra utasítja a kiszolgálót, hogy válaszoljon a felsorolt címek és portok bármelyikéről érkező kérésekre.

Név alapú virtuális gazdagépek beállítása

A virtuális gazdagép fogalma egy egyedi helyet (vagy tartományt) határoz meg, amelyet ugyanaz a fizikai gép szolgál ki. Valójában több webhely/domain is kiszolgálható egyetlen „valódi” szerverről virtuális gazdagépként. Ez a folyamat átlátható a végfelhasználó számára, akinek úgy tűnik, hogy a különböző webhelyeket különálló webszerverek szolgálják ki.

A név alapú virtuális tárhely lehetővé teszi a szerver számára, hogy a kliensre támaszkodjon a gazdagépnév jelentésében a HTTP-fejlécek részeként. Így ezzel a technikával sok különböző gazdagép megoszthatja ugyanazt az IP-címet.

Minden virtuális gazdagép egy könyvtárban van konfigurálva a DocumentRoot programban. A mi esetünkben a következő áldomaineket fogjuk használni a tesztelési beállításhoz, amelyek mindegyike a megfelelő könyvtárban található:

  1. ilovelinux.com – /var/www/html/ilovelinux.com/public_html
  2. linuxrocks.org – /var/www/html/linuxrocks.org/public_html

Az oldalak helyes megjelenítése érdekében módosítjuk minden VirtualHost könyvtárát 755-re:

chmod -R 755 /var/www/html/ilovelinux.com/public_html
chmod -R 755 /var/www/html/linuxrocks.org/public_html

Ezután hozzon létre egy minta index.html fájlt minden public_html könyvtárban:

<html>
  <head>
    <title>www.ilovelinux.com</title>
  </head>
  <body>
    <h1>This is the main page of www.ilovelinux.com</h1>
  </body>
</html>

Végül a CentOS és az openSUSE rendszerben adja hozzá a következő részt az /etc/httpd/conf/httpd.conf vagy / alján etc/apache2/httpd.conf, illetve csak módosítsa, ha már ott van.


<VirtualHost *:80>
     ServerAdmin [email  
     DocumentRoot /var/www/html/ilovelinux.com/public_html
     ServerName www.ilovelinux.com
     ServerAlias www.ilovelinux.com ilovelinux.com
     ErrorLog /var/www/html/ilovelinux.com/error.log
     LogFormat "%v %l %u %t \"%r\" %>s %b" myvhost
     CustomLog /var/www/html/ilovelinux.com/access.log	myvhost
</VirtualHost>
<VirtualHost *:80>
     ServerAdmin [email  
     DocumentRoot /var/www/html/linuxrocks.org/public_html
     ServerName www.linuxrocks.org
     ServerAlias www.linuxrocks.org linuxrocks.org
     ErrorLog /var/www/html/linuxrocks.org/error.log
     LogFormat "%v %l %u %t \"%r\" %>s %b" myvhost
     CustomLog /var/www/html/linuxrocks.org/access.log	myvhost
</VirtualHost>

Vegye figyelembe, hogy az egyes virtuális gazdagép-definíciókat külön fájlokban is hozzáadhatja a /etc/httpd/conf.d könyvtárban. Ha ezt választja, minden konfigurációs fájlt a következőképpen kell elnevezni:

/etc/httpd/conf.d/ilovelinux.com.conf
/etc/httpd/conf.d/linuxrocks.org.conf

Más szóval, hozzá kell adnia a .conf fájlt a webhely vagy a domain névhez.

Az Ubuntuban minden egyes konfigurációs fájl neve /etc/apache2/sites-available/[webhely neve].conf. Ezután minden webhely az a2ensite vagy az a2dissite paranccsal engedélyezhető vagy letiltható, az alábbiak szerint.

a2ensite /etc/apache2/sites-available/ilovelinux.com.conf
a2dissite /etc/apache2/sites-available/ilovelinux.com.conf
a2ensite /etc/apache2/sites-available/linuxrocks.org.conf
a2dissite /etc/apache2/sites-available/linuxrocks.org.conf

Az a2ensite és a2dissite parancsok hivatkozásokat hoznak létre a virtuális gazdagép konfigurációs fájljához, és elhelyezik (vagy eltávolítják) azokat az /etc/apache2/sites-enabled mappában. > könyvtár.

Ahhoz, hogy mindkét oldalra böngészhessen egy másik Linux-dobozból, a következő sorokat kell hozzáadnia az adott gépen található /etc/hosts fájlhoz, hogy átirányítsa az ezekre a tartományokra irányuló kéréseket egy adott IP-címre cím.


[IP address of your web server]	www.ilovelinux.com
[IP address of your web server]	www.linuxrocks.org 

Biztonsági intézkedésként a SELinux nem engedi, hogy az Apache az alapértelmezett /var/log/httpd könyvtártól eltérő könyvtárba írjon naplókat.

Letilthatja a SELinuxot, vagy beállíthatja a megfelelő biztonsági környezetet:


chcon system_u:object_r:httpd_log_t:s0 /var/www/html/xxxxxx/error.log

ahol az xxxxxx a /var/www/html-en belüli könyvtár, ahol meghatározta a virtuális gazdagépeket.

Az Apache újraindítása után a következő oldalt kell látnia a fenti címeken:

SSL telepítése és konfigurálása Apache segítségével

Végül létrehozunk és telepítünk egy önaláírt tanúsítványt az Apache használatához. Ez a fajta beállítás elfogadható kis környezetekben, például privát LAN-ban.

Ha azonban a szervere tartalmat tesz közzé a külvilág számára az interneten keresztül, telepítenie kell egy harmadik fél által aláírt tanúsítványt a hitelesség igazolására. Akárhogy is, a tanúsítvány lehetővé teszi a webhelyére, onnan vagy azon belül továbbított információk titkosítását.

A CentOS és az openSUSE rendszerben telepítenie kell a mod_ssl csomagot.

yum update && yum install mod_ssl 		[On CentOS]
zypper refresh && zypper install mod_ssl	[On openSUSE]

Míg az Ubuntu esetén engedélyeznie kell az ssl modult az Apache számára.

a2enmod ssl

A következő lépéseket egy CentOS tesztszerver magyarázza el, de a beállításnak majdnem azonosnak kell lennie a többi disztribúcióban (ha bármilyen problémába ütközik, ne habozzon feltenni kérdéseit a megjegyzésekben forma).

1. lépés [Opcionális]: Hozzon létre egy könyvtárat a tanúsítványok tárolására.

mkdir /etc/httpd/ssl-certs

2. lépés: Hozza létre az önaláírt tanúsítványt és az azt védő kulcsot.

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl-certs/apache.key -out /etc/httpd/ssl-certs/apache.crt

A fent felsorolt lehetőségek rövid magyarázata:

  1. A req -X509 azt jelzi, hogy x509-es tanúsítványt hozunk létre.
  2. A -nodes (NO DES) azt jelenti, hogy „ne titkosítsa a kulcsot ”.
  3. A -365 nap az a napok száma, ameddig a tanúsítvány érvényes.
  4. A -newkey rsa:2048 2048 bites RSA-kulcsot hoz létre.
  5. A -keyout /etc/httpd/ssl-certs/apache.key az RSA kulcs abszolút elérési útja.
  6. A -out /etc/httpd/ssl-certs/apache.crt a tanúsítvány abszolút elérési útja.

3. lépés: Nyissa meg a kiválasztott virtuális gazdagép konfigurációs fájlját (vagy az /etc/httpd/conf/httpd.conf megfelelő szakaszát a korábban leírtak szerint), és adja hozzá a következő sorokat a 443-as porton figyelő virtuális gazdagép deklaráció.

SSLEngine on
SSLCertificateFile /etc/httpd/ssl-certs/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl-certs/apache.key

Kérjük, vegye figyelembe, hogy hozzá kell adnia.

NameVirtualHost *:443

fent, közvetlenül lent

NameVirtualHost *:80

Mindkét direktíva arra utasítja az apache-t, hogy figyeljen az összes hálózati interfész 443 és 80 portjára.

A következő példa a /etc/httpd/conf/httpd.conf fájlból származik:

Ezután indítsa újra az Apache-ot,

service apache2 restart 			[sysvinit and upstart based systems]
systemctl restart httpd.service 		[systemd-based systems]

És mutasson böngészőjében a https://www.ilovelinux.com címre. A következő képernyő jelenik meg.

Menjen tovább, és kattintson a „Megértem a kockázatokat” és a „Kivétel hozzáadása” elemre.

Végül jelölje be a „A kivétel végleges tárolása” lehetőséget, majd kattintson a „Biztonsági kivétel megerősítése” gombra.

A rendszer átirányítja a kezdőlapjára a https használatával.

Összegzés

Ebben a bejegyzésben bemutattuk, hogyan konfigurálható az Apache és a név alapú virtuális tárhely SSL használatával az adatátvitel biztonsága érdekében. Ha valamilyen okból bármilyen problémába ütközött, nyugodtan tudassa velünk az alábbi megjegyzés űrlap segítségével. Örömmel segítünk a sikeres beállításban.

Olvassa el még

  1. Apache IP alapú és név alapú virtuális tárhely
  2. Apache virtuális gazdagépek létrehozása a Vhost engedélyezése/letiltása opciókkal
  3. Figyelje az „Apache webszervert” az „Apache GUI” eszközzel