1. lépés – A webszerver telepítése
2. lépés – Az otthoni könyvtárak biztonsága
3. lépés – Helyezzen biztonsági javítást az Apache-ra a felhasználói jogosultságok szétválasztásához
3. lépés – Az első virtuális gazdagép létrehozása
4. lépés – Az Apache beállítása másik felhasználóként való futtatásra
5. lépés – Az Apache verziójának elrejtése
6. lépés – Az Apache újraindítása a módosítások alkalmazásához
Következtetés
Könnyű parancsikonokat használni a kiszolgáló biztosításakor, de adatvesztés kockázatával járhat, ha egy támadó gyökér hozzáférést kap valamelyik szerveréhez. Még egyszerű telepítés esetén is előzetesen le kell védenie a szervert. A kiszolgálók védelme széles téma, és az operációs rendszertől és a rajtuk futó alkalmazásoktól függően változik.
Ez az oktatóanyag az Apache CentOS 6 alatti biztonságára összpontosít. A telepítés után néhány lépést megtehet, hogy megvédje magát a jogosultságok kiszélesítésétől és a nem megfelelő támadásoktól.
Minden további nélkül kezdjük.
1. lépés – A webszerver telepítése
Természetesen, ha nincs telepítve az Apache vagy a PHP, akkor ezt most meg kell tennie. Hajtsa végre ezt a parancsot root felhasználóként, vagy használja a sudo-t:
yum install httpd php
2. lépés – Az otthoni könyvtárak biztonsága
Most, hogy az Apache telepítve van, kezdjük el biztonságossá tenni. Először is meg akarunk győződni arról, hogy más felhasználók könyvtárait a tulajdonoson kívül senki ne lássa. Az összes saját könyvtárat 700-ra módosítjuk, így csak a saját könyvtárak tulajdonosai láthatják saját fájljaikat. Futtassa ezt a parancsot rootként, vagy használja a sudo-t:
chmod 700 /home
chmod 700 /home/*
chmod 700 /home/*/*
A helyettesítő karakterek használatával lefedjük a saját könyvtárban jelenleg található összes fájlt.
3. lépés – Helyezzen biztonsági javítást az Apache-ra a felhasználói jogosultságok szétválasztásához
Az Apache javítása előtt először telepítenünk kell a tárolót, amely tartalmazza a javítást tartalmazó csomagot. Futtassa a következő parancsokat rootként (vagy sudoként).
yum install epel-release
yum install httpd-itk
Az "apache2-mpm-itk" segítségével meg tudjuk mondani, hogy a PHP-nek milyen felhasználóként kell futnia a virtuális gazdagép alapján. Hozzáad egy új konfigurációs opciót AssignUserId virtualhost-user virtualhost-user-group, amely lehetővé teszi számunkra, hogy megmondjuk az Apache/PHP-nek, hogy futtasson felhasználói kódot egy adott felhasználói fiók alatt.
Ha megosztja ezt a kiszolgálót, feltételezem, hogy korábban már létrehozott egy virtuális gazdagépet az Apache számára. Ebben az esetben ugorhat a 4. lépésre.
3. lépés – Az első virtuális gazdagép létrehozása
Kövesse az alábbi sablont virtuális gazdagép létrehozásához az Apache-ban.
NameVirtualHost mytest.website
<VirtualHost mytest.website>
DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
</VirtualHost>
Nyissa meg kedvenc szövegszerkesztőjét, /etc/httpd/conf.d/example-virtualhost.confmajd adja hozzá a fenti tartalmat. Íme a nano használatának parancsa:
nano /etc/httpd/conf.d/example-virtualhost.conf
Hadd magyarázzam el itt a konfigurációt. Amikor adja „NameVirtualHost” vagyunk valójában mond a webszerver, hogy mi tárhely több domaint az egy IP . Ebben a példában példatartományként használtam mytest.website. Módosítsa ezt a sajátjára vagy egy választott domainre. DocumentRootez mondja meg az Apache-nak, hogy hol található a tartalom. ServerNameegy direktíva, amellyel megmondjuk az Apache-nak a webhely domainjét. És egy utolsó címke, </VirtualHost>amely azt mondja az Apache-nak, hogy a virtuális gazdagép konfigurációjának vége.
4. lépés – Az Apache beállítása másik felhasználóként való futtatásra
Ahogy korábban említettük, a szerver biztonságának része az Apache/PHP külön felhasználóként való futtatása minden egyes virtuális gazdagépen. A javítás felhelyezése után egyszerű megmondani az Apache-nak, hogy ezt tegye – mindössze annyit kell tennie, hogy hozzá kell adnia:
AssignUserId vhost-user vhost-user-group
... az Ön konfigurációjához. Így nézne ki a példakénti virtuális gazdagép, miután hozzáadtuk ezt a lehetőséget:
NameVirtualHost mytest.website
<VirtualHost mytest.website>
DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
AssignUserId vhost-user vhost-user-group
</VirtualHost>
A varázslat a -vel kezdődő sorban van AssignUserId. Ezzel az opcióval azt mondjuk az Apache-nak/PHP-nek, hogy a következő felhasználóként/csoportként fusson.
5. lépés – Az Apache verziójának elrejtése
Ez a lépés meglehetősen egyszerű; csak nyissa meg az Apache konfigurációs fájlját a következő parancs végrehajtásával root felhasználóként:
nano /etc/httpd/conf/httpd.conf
Keresse meg a „ServerTokens” elemet, és módosítsa az utána lévő opciót „ProductOnly”-ra. Ez arra utasítja az Apache-t, hogy csak azt fedje fel, hogy "Apache" az "Apache/2.2" vagy valami hasonló helyett.
6. lépés – Az Apache újraindítása a módosítások alkalmazásához
Most, hogy biztonságossá tettük a szervert, újra kell indítanunk az Apache szervert. Ehhez futtassa a következő parancsot rootként vagy sudo-val:
service httpd restart
Következtetés
Ez csak néhány lépés, amelyet megtehet szervere biztonsága érdekében. Még egyszer, még akkor is, ha valaki, akiben megbízik, üzemeltet egy webhelyet a szerverén, meg kell terveznie annak védelmét. A fenti forgatókönyvekben a támadó még akkor sem fér hozzá a teljes kiszolgálóhoz, ha egy felhasználói fiókot feltörtek.