Apache védelme 2

A webkiszolgáló kiválasztásakor az Apache nagyon gyakran nyer versenytársait a stabilitás, a nagy teljesítmény, a nyílt forráskód és sok más előnye miatt. Az Apache jelenleg két változat formájában létezik - egy stabil 1.3-as verzió, amelyet több millió felhasználó használ, másrészt pedig egy továbbfejlesztett és újratervezett verzió 2.0.

Bár az új verzió számos jelentős kiegészítést és funkciót tartalmaz, sok rendszergazda továbbra is használja a régebbi verziót, tekintve, hogy stabilabb és biztonságosabb. Sok tény megerősíti ezt. Mivel az 1.3-as verziót hosszú évek óta több millió felhasználó használta, a legtöbb biztonsági lyuk ebben a verzióban már az egészben már felismerésre került. Ugyanakkor a 2.0-s verziónak sok még nem azonosított sebezhetősége lehet.

A biztonság világában számos olyan arany elv érvényesül, amelyet mindig tiszteletben kell tartani. Az egyik ilyen elv az a szabály, amely szerint csak a szoftver szükséges részeit kell használni. Minden más elemet blokkolni, hozzáférni vagy még egyáltalán nem kell telepíteni.

Ennek a szabálynak a logikája nagyon egyszerű - ha sok olyan összetevő található, amelyek alapértelmezésben szerepelnek, akkor az ezen összetevők közül csak az egyikben felfedezett biztonsági rés veszélyeztetheti az egész rendszert a sikeres hackelés veszélyének. Másrészt, ha csak néhány rendkívül kritikus komponenst használ, akkor az újonnan felfedezett biztonsági rés nem feltétlenül teszi a programot sebezhetővé - mivel egy észlelt biztonsági rés hatással lehet a letiltott vagy nem telepített összetevőkre. A sikeres hackelés valószínűsége ebben az esetben nyilvánvalóan jóval alacsonyabb, mint az alapértelmezett telepítés esetében.

Ezért az Apache 2 telepítése előtt nagyon fontos tudni, hogy milyen funkcionalitást várunk el a webkiszolgálótól. Ez lehetővé teszi számunkra, hogy elkészítsük a modulok listáját, melyeket hagyni hagyunk, a többi pedig le lesz tiltva a telepítés során.

Annak érdekében, hogy a lehető legmagasabb szintű védelmet biztosítsuk, és egyidejűleg, hogy ezt a megoldást hordozzuk a különböző Linux / BSD rendszerek között, a következő védelmi szinteket fogjuk használni:

Operációs rendszer

  • Az operációs rendszert a lehető legnagyobb mértékben meg kell erősíteni; minden felesleges összetevőt el kell távolítani a rendszerből.
  • Az operációs rendszernek nem szabad megengednie, hogy a verziókon végrehajtson (ha támogatott).
  • Minden felesleges hálózati szolgáltatást blokkolni kell.
  • A SUID / SGID fájlok számát minimálisra kell csökkenteni.

Apache webszerver

  • Csak az abszolút szükséges Apache modulok szerepelnek; A többiet blokkolni kell az összeállítás során
  • Minden diagnosztikai weboldalt és az automatikus címtár-indexelési szolgáltatást ki kell kapcsolni.
  • A kiszolgálónak a lehető legkevesebb információt kell tartalmaznia önmagáról - az összefonódás politikájáról. Bár ez nem valós védelem, alkalmazásának köszönhetően a behatolások nehezen megvalósíthatók.
  • A webszervernek egy különálló UID / GID alatt kell futnia, amelyet más rendszerfolyamatok nem használnak.
  • Az Apache folyamatnak korlátozott hozzáféréssel kell rendelkeznie a fájlrendszerhez (chrooting).
  • Az Apache chrooted környezet nem tartalmazhat semmiféle szoftvercsomagot (/ bin / sh, / bin / csh stb.) - ez sokkal nehezebbé teszi a rosszindulatú kód végrehajtását.

Az operációs rendszer telepítése

Először is meg kell választanunk azt az operációs rendszert, amelyen a webszerver fut. A cikk fő része az Apache védelméről szól a FreeBSD-en (5.1), de az olvasók szabadon használhatják kedvenc Unix, BSD, Linux vagy Linux-szerű operációs rendszereiket.

Biztonsági feltételezéseink szerint az operációs rendszer telepítése után meg kell védeni a távoli és helyi támadásokkal szemben. A UNIX / Linux / BSD disztribúció választásától függetlenül nagyon fontos, hogy csak a fő operációs rendszert telepítsük és eltávolítsunk minden redundáns csomagot, és alkalmazzuk a jelenlegi szintre vonatkozó korrekciókat a rendszermag és az összes telepített szoftver számára.

Azt is javasolta, hogy rendszeresen szinkronizálja a helyi idő szerver egy megbízható alkalommal egy óráját a szerver, amely a megbízható segítségével Network Time Protocol (NTP), és elküldi a naplókat, hogy a távoli, dedikált szerver regisztráció.

Ezután le kell tölteni az Apache webszerver legújabb verzióját az Apache webhelyéről. Mivel a fordítás folyamán a felesleges modulokat szeretnénk letiltani, nagyon fontos az Apache forráskódjának letöltése. Fontos, hogy a letöltött szoftver ellenőrizze a PGP aláírását, hogy megbizonyosodjon arról, hogy a letöltött verzió nem módosul.

Válassza az Apache modulokat

Mivel csak minimális számú modulot szeretnénk használni, minden modulot statikusan összeállítunk. Ennek következtében megszüntetjük annak lehetőségét, hogy egy másik modulban - a mod_so - alkalmazzuk a sérülékenységet.

Ebben a lépésben az Apache webszervert konfiguráljuk, fordítjuk és telepítjük az alábbiak szerint: Az Apache telepítése után ügyelni kell arra, hogy csak az alábbi modulokat használjuk:

Apache konfigurálása

Az Apache első futtatása előtt meg kell változtatnunk az Apache konfigurációs fájlját. Ezt azért kell tennünk, mert az alapértelmezett konfigurációs fájl a letiltott modulokat használja, és az Apache nem fog működni.

Chrooting szerver

Továbbá, mi korlátozza a hozzáférést az Apache folyamat fájlrendszer. chrootolást technikát részletesen egy korábbi cikkben, ezért ezen a ponton egyszerűen létrehoz egy könyvtár struktúrát az új Apache: A tulajdonos minden fenti könyvtárakat kell gyökér, amely engedélyt nem engedheti meg a normál felhasználók számára bármilyen változás ezekben a könyvtárakban: Next, akkor hozzon létre egy speciális eszközkezelő fájl, a / dev / null: Azt is meg kellene létrehozni a / chroot / httpd / dev / log berendezés, amely szükséges a normális működését a szerver. Abban az esetben mi FreeBSD rendszer, meg kell adni a következő sort a /etc/rc.conf állományba: syslogd_flags = "- l / chroot / httpd / dev / log"

Most, ha az Apache megfelelően működik, akkor marad a számunkra, hogy hozzon létre egy script, hogy fog futni Apache rendszerindítás során. Erre a célra lehet használni a következő szkriptet: # / bin / sh chroot = / chroot / httpd HTTPD = / usr / local / apache2 / bin / httpd PidFile = / usr / local / apache2 / logs / httpd.pid echo -n „apache! "ügy" $ 1”start) / usr / sbin / chroot $ chroot $ HTTPD ;; megáll) megöli `cat $ / $` ;; *) Echo "" echo "Használat:` basename $ 0`"> 2 exit 64 ;; esac exit 0 A fenti szkript kell másolni a könyvtárba, ahol az alapértelmezett indítószkriptekkel. Abban az esetben, FreeBSD, hogy - /usr/local/etc/rc.d könyvtárban. file hozzáférési jogosultságokat kell beállítani az alábbiak szerint:

A cikk fő célja az Apache 2.0 védelmének módszere, amely lehetővé teszi az olvasók számára a sikeres hackelés kockázatának mérséklését, még akkor is, ha új biztonsági rést kihasználnak. Megmutatta, hogyan kell telepíteni az Apache-t minimális számú modulral, hogyan kell egy korlátozóbb konfigurációt telepíteni, és miként kell végrehajtani a védelmet nagyszámú kizsákmányolás ellen egy webkiszolgáló chrooted környezetben történő futtatásával, héjprogramok használata nélkül. És noha egyetlen módszer sem nyújt 100% -os védelmet, a fenti ajánlások alkalmazásával sokkal nehezebb támadást végrehajtani az Apache 2.0-val szemben az alapértelmezett telepítéshez képest.

  • Apache védelme 2
  • Apache védelme 2
  • Apache védelme 2
  • Apache védelme 2

Kapcsolódó cikkek