Hogyan tehető biztonságossá az Apache Web Server for NetWare az NDS eDirectoryval? A nyílt forráskódú Apache Web Server szabványos telepítése tartalmaz olyan modulokat, amelyek az operációs rendszertől független, elsősorban fájlalapú biztonságot nyújtanak. A jelen AppNote leírja, hogyan lehet két kiegészítő modullal – a MOD_NDS-sel és az AUTH_LDAP-vel – magasabb szintű biztonságot kialakítani NetWare-platformon. A cikk bemutatja azt is, hogyan lehet a MOD_TLS segítségével a kliens és szerver között Secure Socket Layer (SSL-) kapcsolatot létrehozni.
Bevezető Az Apache Web Server az Interneten leggyakrabban használt webszerver. A NetCraft Survey felmérései szerint az Interneten több mint 60 százalékban Apache Web Servert használnak. A nyílt forráskód és az ingyenes elérhetőség az Apache-ot vonzóvá teszi a kis- és nagyvállalatok számára egyaránt. Az Apache stabil, méretezhető, megbízható és ingyenes webszerver. Az utóbbi öt évben az Apache utolérte – és sok esetben felül is múlta – a piacon kapható webszervereket stabilitás és funkcionalitás terén. Az Apache Web Server szokásos telepítése hitelesítési és jogosultság-ellenőrzési funkciókat biztosító modulokat is tartalmaz. Ez a funkcionalitás elsősorban fájlalapú, és a könyvtárak vagy a fájlok helye alapján kell konfigurálni. Ezzel a biztonsággal az az egyetlen probléma, hogy független az operációs rendszer által nyújtott biztonsági funkcióktól. A jelen AppNote bemutatja, hogyan lehet két kiegészítő modullal – a MOD_NDS-sel és az AUTH_LDAP-vel – magasabb szintű biztonságot kialakítani, lehetővé téve, hogy az Apache az operációs rendszer funkcióit használja, ne saját maga igyekezzen az alapoktól megvalósítani a biztonsági funkciókat. A cikk bemutatja azt is, hogyan lehet a MOD_TLS segítségével a kliens és szerver között Secure Socket Layer (SSL-) kapcsolatot létrehozni.
Az Apache Web Server telepítése Az Apache Web Server NetWare-en való telepítése egyszerű folyamat. Az Apache for NetWare-hez jelenleg nem jár telepítő- vagy beállítóprogram – az Apache-ot NetWare-en egyelőre kézzel kell telepíteni és beállítani, az alábbiakban ismertetett módon. (További információ a szoftverhez mellékelt telepítési útmutatóban található.) Az Apache Web Server for NetWare a http://www.apache.org/dist/binaries/netware címről tölthető le. A fájlok telepítése az alábbi lépésekből áll: 1.
2.
Töltse le az Apache_1.3.x_Netware.zip nevű fájlt. (A cikk megjelenésekor már kapható az NDS-el együttműködő változat; az 1.3.14a-nál újabb változat tartalmazza a szükséges patcheket.) Ez a fájl kicsomagoláskor az Apache alapértelmezett telepítésének megfelelő könyvtárstruktúrát hoz létre. A szoftver telepítéséhez egyszerűen másolja a teljes címtárstruktúrát valamelyik NetWare-kötet gyökerébe.
Az Apache Web Server a HTTPD.CONF
nevű fájllal konfigurálható. Alapesetben a konfigurációs fájl az /Apache/Conf
alkönyvtárban található. Ez egy egyszerű szövegfájl, amely bármilyen szövegszerkesztővel módosítható. Ha az Apache szoftver a NetWare-szerver SYS: kötetén van telepítve, akkor nincs szükség a konfigurációs fájl megváltoztatására ahhoz, hogy az Apache működjön. Ha nem a SYS: kötetre telepítettük az Apache szoftvert, vagy ha nem a kötet gyökerébe másoltuk a fájlokat, akkor kisebb változtatásokat el kell végezni a HTTPD.CONF fájlon. A szükséges változtatások a következők: 1. Nyissuk meg a HTTPD.CONF fájlt valamilyen szövegszerkesztővel. 2. Bizonyosodjunk meg róla, hogy minden könyvtárelérési út megegyezik a bemásolt Apache-fájlok helyével. A módosítatlan konfigurációs fájl feltételezi, hogy az elsődleges könyvtárstruktúra a SYS:/APACHE. 3. Győződjön meg róla, hogy minden bejegyzés megfelel a telepítés helyének. Ha az Apache-ot NetWare-en telepítjük, akkor minden könyvtárelérési útnak (path) tartalmaznia kell a kötet nevét. 4. A második szükséges változtatás a név hozzárendelése a webszerverhez. Ez a HTTP.CONF-ben levő SERVERNAME bejegyzés megváltoztatásával történik. A bejegyzés értéke a szerver IP-címe vagy DNS-neve lehet. Az Apache for NetWare tartalmaz egy THREADSTACKSIZE nevű platformspecifikus változót.
Ezzel a változóval állítható be, hogy az Apache mekkora veremterületet foglaljon le a kérést kiszolgáló szálnak. Alapbeállításban a változó értéke 65536. Ez az érték növelhető vagy csökkenthető a szolgáltatott tartalom típusától és a kérést kiszolgáló szálak által erőforrásigényétől függően.
Az Apache Web Server moduljai Az Apache egyik vonzó tulajdonsága, hogy a webszerver kiegészítő modulokkal bővíthető. Az Apachewebszerverben lévő funkciók nagy része így, modulok beépítésével biztosítható. Kétfajta Apache-modul létezik: a külső és belső (vagy beépített) modul. A külső modul olyan funkciókészlet, amely egy különálló, végrehajtható fájlba van becsomagolva. Ha külön fájlokban vannak a modulok, akkor a rendszergazda szükség esetén egyszerűen hozzárakhat, vagy elvehet egyes modulokat. Ha egy modul újabb változata jelenik meg, akkor a rendszergazdának csak be kell másolnia az új fájlt az /APACHE/MODULES könyvtárba és újra kell indítania a szervert. A második típusú modul a belső (vagy beépített) modul. Ezek a modulok (funkciók) fordítási időben kerülnek bele az Apache végrehajtható állományába. Forráskód tekintetében igazából semmi különbség sincs a külső és a beépített modul között. A modul forráskódjai ugyanúgy néznek ki, és az implementáláshoz szükséges keretrendszer sem különbözik. A külső modul közvetlenül lefordítható az Apache által végrehajtható formába azáltal, hogy egyszerűen beletesszük a forráskódot az Apache kódjába. Mikor egy kérés érkezik az Apache-webszervertől, a teljes kiszolgálás érdekében állapotok sorozatán kell áthaladnia. Az Apache architektúrája lehetővé teszi, hogy a modulok hozzárendeljék magukat egy, vagy akár több állapothoz is. (Lásd 1. ábra)
1. ábra: Az Apache Web Server állapotai
Ezen állapotok közül három kapcsolódik a webszerver biztonsági funkcióihoz: az Access Control (hozzáférésvezérlés), az Authentication (hitelesítés) és az Authorization (feljogosítás). Jelenleg többféle Apache-modul is létezik, amelyek a fenti három közül egy vagy több állapotot kezelve biztonságosabbá próbálja tenni az Apache Web Servert. A következő szakaszban röviden bemutatjuk az Apache Web Serverrel együtt szállított szabványos modulok által kínált biztonsági szinteket. Három további modulról is szó lesz, amelyekkel az Apache az operációs rendszer által nyújtott biztonságot használhatja ki.
Az Apache Web Server biztonságossá tétele Ha az Apache-ot már telepítettük és működik is, hogyan tehetnénk biztonságossá?
A válasz: a szükséges biztonsági szolgáltatásokat nyújtó kiegészítő modulokkal, amelyek lehetővé teszik a hozzáférést az operációs rendszer által nyújtott biztonsági szolgáltatásokhoz. Valójában több különböző biztonsági terület van, amelyekkel az Apache-webszerver telepítésekor foglalkozni kell. Ezek a területek a felhasználó hitelesítésétől és a biztonságos összeköttetéstől kezdve egészen a fájlrendszerhez való hozzáférésig terjednek.
Az Apache biztonsági szolgáltatásai Az Apache Web Serverben számos beépített eljárás van, amellyel engedélyezhető vagy letiltható a felhasználói hozzáférés és a fájlhozzáférés. A fájlhozzáférés korlátozása az Apache-ba beépített funkciók egyike. Alapesetben az Apache Web Server csak az APACHE/HTDOCS könyvtár és alkönyvtárak tartalmához engedélyezi a nyilvános hozzáférést. Más területek elérése vagy elérésének tiltása a HTTPD.CONF fájlban definiált blokkokal történik. A következő definíció például csak egy megadott tartományból érkező kérések számára engedélyezi a hozzáférést (a más tartományokból érkező kérések le vannak tiltva):
order deny,allow deny from all allow from MyClients.Com
Ez megvalósít egy bizonyos szintű hozzáférés-vezérlést, de nem biztosítja a kérések felhasználói vagy viszonyszintű (session level) kezeléséhez szükséges finomságot. A felhasználói hozzáférést ki lehet kényszeríteni az egyik szabványos, Apache Web Serverhez mellékelt hitelesítési modul implementálásával. E hitelesítő modulok egyike a MOD_AUTH_ ANON. Ez a modul egy fájlalapú módszert kínál a felhasználói hozzáférés vezérléséhez: összehasonlítja a felhasználó által szolgáltatott azonosítási adatokat a szerveren, egy kódolt jelszófájlban tárolt adatokkal. Az Apache tartalmaz egy HTPASSWD nevű alkalmazást, amellyel jelszófájlt lehet létrehozni. Az alábbi kódrészlet arra mutat példát, amikor csak a RESTRICTED.PWD fájlban felsorolt felhasználók férhetnek hozzá az adott könyvtárban levő fájlokhoz.
AuthType Basic AuthName Restricted_Area AuthUserFile VOL1:/UserAccessFiles/Restricted.pwd Require valid-user
Az Apache tehát biztosítja a fájlrendszerhez való hozzáférés korlátozásának lehetőségét, de ez a biztonság elég alacsony szintű. A hitelesítési és hozzáférés-vezérlési modulok által biztosított funkciók használata bonyolult és nem veszik figyelembe az operációs rendszer funkcióival biztosított fájlhozzáférési jogokat. Ha a felhasználó egyszer hozzáfér a címtárhoz vagy egy területhez, akkor semmi nem állíthatja meg. A fenti példában nincs semmi, ami megakadályozná, hogy a felhasználó az adott helyen található összes fájlt vagy weboldalt megnézze. És ami még rosszabb, a hitelesítést manuálisan kell végrehajtani minden korlátozott elérésű terület esetében. Ha az egyes területeken levő jogosult felhasználók különbözők, akkor minden területhez egy új jelszófájlt kell létrehozni. A szabványos hitelesítési modulok használatáról és telepítéséről bővebb információt bármelyik, könyvesboltban kapható felügyeleti útmutatóban találhat, vagy látogasson el a http://www.apache.org-ra.
Natív biztonsági szolgáltatások beépítése az Apache-ba A legjobb módszer a webszerver biztonságossá tételére, ha az operációs rendszerben natívan meglévő biztonsági eszközöket használjuk. A NetWare a kategóriájában legjobb hálózati biztonsági szolgáltatásokat nyújtja, miért is ne használnánk ki őket? Az Apache-hoz adott alapvető biztonsági eszközök nyújtotta összes biztonsági szolgáltatás megvan a NetWare-ben. Az Apache-modulokkal – a MOD_NDS-sel, a MOD_TLS-sel és az AUTH_LDAP-vel –az Apache képes kihasználni a NetWare biztonsági szolgáltatásait. Mod_TLS Az Apache for NetWare egyik nagy előnye, hogy a szoftver beépítetten kezeli az SSL-t. Minden más platform esetén le kell tölteni, össze kell szerkeszteni és telepíteni kell a kiegészítő modulokat az SSL-kezelés biztosításához. Az Apache for NetWare esetében az SSL már benne van a socket rétegben (ami a NetWare operációs rendszer része). Mivel az Apache az operációs rendszer socket-kezelését használja, sem az Apache for NetWare, sem a MOD_TLS nem
tartalmaz semmilyen titkosító kódot. A MOD_TLS – az SSL-t kezelő modul – egyszerűen utasítja a socket réteget, hogy engedélyezze az adott porton az SSL-t. Ez egy nagyon kicsi modul, amelynek csak egy változója van. SecureListen Szintaxis
SecureListen <portszám>
Kontextus
Server config
Leírás
Utasítja az Apache-ot, hogy figyeljen egy meghatározott porton biztonságos összeköttetésen keresztül.
Mod_NDS A MOD_NDS egy Apache-modul, ami egy NCPFS API alapú linuxos implementációból származik. A modult eredetileg Philip R. Wilson fejlesztette, és nyilvánosan elérhető a GNU általános licencfeltételei szerint. A MOD_NDS NetWare-implementációja egyszerűen lecseréli az NCPFS-hívást egy közvetlen NetWare DSAPIhívásra. A MOD_NDS rá tudja kényszeríteni az Apache-ot, hogy vegye figyelembe a Novell NDS eDirectoryban beállított és a fájlrendszer által kikényszerített fájlhozzáférési jogosultságokat. Ez a fájlhozzáférési szint nem valósítható meg a MOD_NDS linuxos változatával. Az alábbiakban részletesen leírjuk a változókat. Ezek a változók teszik lehetővé, hogy a rendszergazda integrálja a NetWare Directory Services hitelesítési és azonosítási szolgáltatásait az Apache Web Serverrel. A direktívák teljes leírása a MOD_NDS-hez mellékelt dokumentációban található. AuthNDSUserFile Szintaxis
AuthNDSUserFile
Kontextus
Directory, .htaccess
Leírás
A hitelesítésre jogosult felhasználók neveit tartalmazó szövegfájl nevének beállítása (NetWare-en nem használatos) AuthNDSAuthoritative
Szintaxis
AuthNDSAuthoritative
Kontextus
Directory, .htaccess
Leírás
Meghatározza, hogy a kérés továbbítható-e további hitelesítés érdekében az alsóbb szinteken lévő modulokhoz. AuthNDSTree
Szintaxis
AuthNDSTree
Kontextus
Directory, .htaccess
Leírás
A felhasználói hitelesítéshez használt NDS-fa beállítása. Ez kötelező direktíva.
AuthNDSRequirePW Szintaxis
AuthNDSRequirePW
Kontextus
Directory, .htaccess
Leírás
Meghatározza, hogy egy üres jelszómezővel rendelkező felhasználó hozzáférhet-e az oldalhoz.
AuthNDSExpiredURI Szintaxis
AuthNDSExpiredURI
Kontextus
directory, .htaccess
Leírás
Lejárt jelszó esetén átirányít egy másik oldalra.
AuthNDSCacheTimeout
Szintaxis
AuthNDSCacheTimeout <szám>
Kontextus
Server config
Leírás
Beállítja a gyorsítótárban levő bejegyzések élettartamát (másodpercben), vagy letiltja a teljes gyorsítótárat (az érték 0-ra állítása esetén).
AuthNDSUniqueCNs Szintaxis
AuthNDSUniqueCNs
Kontextus
Server config
Leírás
Lehetővé teszi a név –>FDN összerendelések gyorsítótárban való tárolását, hogy a modulnak ne kelljen minden kéréskor külön megkeresnie a felhasználó FDN-jét.
AuthNDSContext Szintaxis
AuthNDSContext <.Keresendő.kontextus.Keresendő.kontextus ...>
Kontextus
directory, .htaccess
Leírás
Felállít egy kontextuskeresési listát a kontextus nélküli belépésekhez.
AuthNDSContextOverride Szintaxis
AuthNDSContextOverride
Kontextus
directory, .htaccess
Leírás
Ez a változó csak az AuthNDSContext-re vonatkozik. Ha ON-ra állítjuk az értékét egy adott könyvtárnál, akkor minden, magasabb szinten levő könyvtárban definiált keresési kontextust figyelmen kívül hagy.
Az Apache az alábbi 'require' változók használatát támogatja: require user
<.user1.teljes.kontextus.user2.teljes.kontextus.user3.teljes.kontextus...> Meghatározza a jogosult felhasználók listáját.
require valid-user
Engedélyezi a hozzáférést bármilyen érvényes jelszó és felhasználói név esetén.
require context
<.pontosan.egyező.kontextus1. pontosan.egyező.kontextus2 ...> Engedélyezi a hozzáférést bármilyen érvényes jelszóra és felhasználói névre egyező kontextus esetén.
require context
Engedélyezi a hozzáférést bármilyen érvényes jelszóra és felhasználói névre részlegesen egyező kontextus esetén.
Az Auth_LDAP Az AUTH_LDAP modul egy hitelesítési modul, amely a felhasználók hitelesítésére használható az LDAPkompatíbilis címtárszolgáltatások esetében. Ez egy nyílt forráskódú modul, és szabadon terjeszthető az Apache Public License-nek megfelelően. A modul NetWare-es változata nem különbözik lényegesen a más platformokhoz tartozó implementációktól. Támogatja az SSL-en keresztüli csatlakozást az LDAP-szerverhez, ha a NetWare- és az LDAPszerver helyesen van konfigurálva az SSL-használatához. Alább felsoroljuk az AUTH_LDAP által kezelt változókat. (Teljes leírás a modulhoz mellékelt dokumentációban található.)
AuthLDAPBindDN Szintaxis
AuthLDAPBindDN <megkülönböztetett név>
Kontextus
Directory, .htaccess
Leírás
Egy opcionális DN, a szerverhez kapcsoláshoz a bejegyzések keresésekor. Ha ez nincs megadva, akkor az AUTH_LDAP egy anonim összeköttetést használ.
AuthLDAPBindPassword Szintaxis
AuthLDAPBindPassword <jelszó>
Kontextus
directory, .htaccess
Leírás
Összeköttetési jelszó az összeköttetési DN-hez.
AuthLDAPAuthoritative Szintaxis
AuthLDAPAuthoritative
Kontextus
directory, .htaccess
Leírás
Állítsa OFF állapotba, ha a modul sikertelen hitelesítési próbálkozása után más hitelesítő moduloknak is engedni kívánjuk a felhasználó hitelesítésének megkísérlését.
AuthLDAPURL Szintaxis
AuthLDAPURL
Kontextus
directory, .htaccess
Leírás
Egy URL, ami meghatározza a használandó LDAP keresési paramétereket.
AuthLDAPRemoteUserIsDN Szintaxis
AuthLDAPRemoteUserIsDN < Off (alapértelmezés) | On>
Kontextus
directory, .htaccess
Leírás
Ha a változó állapota ON, akkora a REMOTE_USER környezeti változó értéke a hitelesített felhasználó teljes egyedi neve lesz, a kliens által átadott felhasználói név helyett.
AuthLDAPCertDBPath Szintaxis
AuthLDAPCertDBPath
Kontextus
server config
Leírás
Meghatározza, hogy az AUTH_LDAP melyik címtárban keresse a tanúsítványhatósági adatbázist. Ebben a címtárban kell lennie egy cert7.db nevű fájlnak.
AuthLDAPCacheSize Szintaxis
AuthLDAPCacheSize <méret>
Kontextus
Server config
Leírás
Az LDAP keresési gyorsítótár maximális méretét határozza meg.
AuthLDAPCacheTTL Szintaxis
AuthLDAPCacheTTL
Kontextus
Server config
Leírás
Meghatározza, hogy egy bejegyzés meddig marad érvényes a gyorsítótárban (másodpercben).
AuthLDAPOpCacheSize Szintaxis
AuthLDAPOpCacheSize <méret>
Kontextus
Server config
Leírás
Meghatározza az AUTH_LDAP által az LDAP-műveletek tárolására használt gyorsítótár méretét.
AuthLDAPOpCacheTTL Szintaxis
AuthLDAPOpCacheTTL
Kontextus
Server config
Leírás
Meghatározza a műveleti gyorsítótárban levő bejegyzések érvényességének az idejét (másodpercben). Alapesetben 600 másodperc.
AuthLDAPCacheCompareOps Szintaxis
AuthLDAPCacheCompareOps
Kontextus
Server config
Leírás
Ha a változó ON állapotban van, akkor az AUTH_LDAP minden összehasonlító műveletet beletesz a gyorsítótárba (ezek ahhoz kellenek, hogy megfeleljenek a require user direktíváknak.)
Az AUTH_LDAP modulhoz mellékelt dokumentációban részletes példák találhatók arról, hogy hogyan implementálható az LDAP alapú hitelesítés az Apache webszerveren.
Mindez együtt Eddig szó volt az Apache szoftver telepítéséről és a webszerver biztonságossá tételére használható különböző modulokról. De hogyan használhatók fel ezen modulok egy biztonságos webszerver kialakításhoz? A következő példában a MOD_TLS és MOD_NDS használatával oldjuk meg, hogy a böngésző biztonságos összeköttetésen keresztül küldhessen kérést, a webböngésző hitelesítse a felhasználót és érvényesítse a fájlhozzáférési jogokat, még mielőtt a felhasználó hozzáférne a kívánt weboldalhoz. Először a modulokat kell telepíteni, hogy az Apache be tudja őket tölteni. A telepítéshez egyszerűen csak be kell másolni a MOD_NDS.NLM fájlt az /APACHE/MODULES könyvtárba (a MOD_TLS.NLM alapesetben telepítve van). Következő lépésben az Apache tudomására kell hozni, hogy ezek a modulok léteznek, és be kell őket tölteni. Ha a következő két utasítást beleírjuk a HTTPD.CONF-ba, akkor ezek utasítják az Apache-ot a modulok betöltésére: LoadModule tls_module modules/mod_tls.nlm LoadModule nds_auth_module modules/mod_nds.nlm
Ekkor az Apache betölti a modulokat, és a MOD_TLS-hez és a MOD_NDS-hez tartozó összes változó elérhető. Már csak a HTTPD.CONF-ban kell definiálni a fájlkorlátozásokat, valamint meg kell határozni, hogy mikor szükséges a hitelesítés. Az alábbiakban egy egyszerű példát mutatunk a hitelesítés használatára és a fájlhozzáférési jogok érvényesítésére. A példában egy meghatározott könyvtárban lévő oldalra vonatkozó bármilyen kérés esetén a webszerver azonnal azonosításra szólítja fel a felhasználót, és a megadott információkhoz tartozó fájlhozzáférési jogokat alkalmazza. SecureListen 443 "SSL CertificateIP" AuthType Basic AuthName A_Protected_Place AuthNDSTree my_company_tree AuthNDSContext .my_sales.staff .my_marketing.staff require valid-user
Ha a privát könyvtárban található oldalra vonatkozó kérés érkezik, akkor a fenti kód érvényes név és jelszó megadására szólítja fel a felhasználót. Ha a felhasználó tagja valamelyik felsorolt kontextusnak, akkor csak az érvényes felhasználói névre van szükség a teljes egyedi név helyett. Ha a felhasználó neve és jelszava meg van adva a webszervernek, akkor az NDS leellenőrzi ezeket, és a webes kapcsolat (session) az adott felhasználó nevében lép be. Innentől kezdve az operációs rendszer érvényesíti a felhasználó összes fájljogosultságát. Ha a felhasználónak nincs fájl-hozzáférési joga az adott weboldalhoz (weboldal-fájlhoz), akkor a 403 Access Denied választ fogja kapni. A MOD_TLS és MOD_NDS használatával a webszerver egy titkosított összeköttetésen keresztül tud kommunikálni a böngészővel, és lehetővé teszi, hogy a felhasználó csak azokhoz a fájlokhoz férjen hozzá, amelyekhez megfelelő jogosultsággal rendelkezik. A MOD_NDS integrálja az Apache-ot a NetWare operációs rendszer által biztosított biztonsági szolgáltatásokkal. Ezért nincs különbség a webfelhasználók, a fájl-hozzáférések és a LAN-felhasználók felügyelete között. A gyakorlatban mind egy és ugyanaz.
Összegzés Az Apache Web Server beállításához és biztonságossá tételéhez csak a következő két lépést kell végrehajtani: Telepíteni kell az Apache szoftvert, és be kell állítani, hogy a NetWare által nyújtott biztonsági szolgáltatásokat használja. A weboldallal kapcsolatos jogok adása és visszavonása ugyanolyan egyszerű, mint a fájlok vagy könyvtárak esetén. Mivel az Apache az operációs rendszer nyújtotta biztonsági szolgáltatásokat használja ki, a NetWare-nél már megszokott biztonságot élvezhetik a felhasználók a weboldal esetén is. A felhasználók, csoportok és a fájlhozzáférés felügyelete a NetWare-szerver felügyeletéhez használt eszközökkel és módszerekkel végezhető. Semmi újat nem kell elsajátítani az Apache Web Server biztonságossá tételéhez. A legjobb az egészben, hogy az Apache Web Server a biztonsági hozzáférési modulokkal együtt ingyenes és az Interneten szabadon hozzáférhető. Ha többet szeretne tudni az Apache Web Serverről és más nyílt forrású projektekről, akkor látogasson el a http://www.apache.org/ címre.
Brad Nicholes szoftvermérnök Core Operating System [email protected] 2001. február 1.