Biztonságos Web-szerver kialakítása Debian GNU/Linux 2.2 rendszeren

v1.0.2

Szerző: Zákány Gergely
narancs1@externet.hu
Web alá rendezte: Kocsis Attila
attila.kocsis@mailbox.hu

Minden jog fenntartva a szerző számára (c) 2000 Zákány Gergely.
Engedélyezett ennek a dokumentumnak a lemásolása, terjesztése és / vagy módosítása az FSF/GNU Free Documentation License (Szabad Dokumentációs Licensze) 1.1-es vagy újabb verziója alatt. (Ezt a licenszet itt is olvashatjuk: http://www.gnu.org/copyleft/fdl.html) Nincs eltérő szekció (invariant section). Nincs első és hatsó borító szöveg sem. A licensz a "GNU Free Documentation License" című függelékben olvasható.
Tartalomjegyzék:
ÁBRAJEGYZÉK
ELŐSZÓ
KÖSZÖNETNYILVÁNÍTÁS
I. BEVEZETÉS

- Bevezetés üzleti szempontból
- Bevezetés gyakorlati szempontból

II. ALAPFOGALMAK

- 1. A GNU projekt, a GPL licensz
- 2. A Linux kernel
  - Néhány technikai jellegű információ
  - Nemzetközi változat
- 3. A Debian projekt
  - Mire jó egy terjesztés?
- 4. Az Apache projekt, az Apache moduljai
- 5. A Web-szerver helye a hálózatban (Internet/intranet)
- 6. A Web-személyzet felépítése
- 7. Web-proxy fogalma és helye a hálózatban
- 8. Biztonsági alapok (hardver, szoftver)
  - 8.1 Általános irányelvek
  - 8.2 A Linux kernel biztonságát növelő projektek
  - 8.3 A Web-alkalmazások biztonsága
- 9. SSH - Távoli menedzsment
- 10. PHP3 alapok (dinamikus Weblap-készítés)
- 11. MySQL alapok (adatbázis szerver)

III. TERVEZÉS

- 1. A feladat felmérése - skálázhatóság, alternatívák, hardver.
- 2. Költségek becslése mintapélda alapján.
- 3. Biztonság
  - 3.1 Milyen programok lehetnek / nem lehetnek egy Web-szerveren?
  - 3.2 A partíciók megtervezése általánosan és a mintapéldához
  - 3.3 A biztonsági mentés (backup) lehetőségei, módszerei és javasolt paraméterei
  - 3.4 Szoftveres UPS (szünetmentes tápegység) felügyelet soros porton keresztül
  - 3.5 A szükséges felhasználók/csoportok és a lemezkvóta megtervezése

IV. MEGVALÓSÍTÁS

- 1. Gyorstalpalás
  - 1.1 A szoftver beszerezése: CD-set, vagy FTP tükör.
  - 1.2 A telepítés menete
    - 1.2.1 Indítás CD-ről vagy floppy-ról
    - 1.2.2 Szükséges alapbeállítások, partícionálás
    - 1.2.3 A hálózat beállítása
    - 1.2.4 Alaprendszer telepítése, újraindítás a merevlemezről
    - 1.2.5 A jelszórendszer beállítása. ("MD5", "Shadow password")
    - 1.2.6 Az "apt" program beállítása
    - 1.2.7 A "dselect" program
      - A csomagok kiválasztása
    - 1.2.8 A feltelepített programok konfigurálása
- 2. Finomítás
  - 2.1 Első lépések
  - 2.2 Az Inetd.conf finomhangolása - a nem biztonságos szolgáltatások letiltása
  - 2.3 A levelező démon beállítása
    - A titkosítás beállítása
  - 2.4 Másik gép használata a fordításokhoz, miért?
  - 2.5 Személyre szabott kernel konfigurálása és fordítása kézzel és a "kernel-package" csomaggal. A "lilo" beállításai.
  - 2.6 Az Apache finomhangolása, esetleges újrafordítása hardver és feladatorientáltan
    - Az Apache fordítása
  - 2.7 Az SSH konfigurációjának finomhangolása
  - 2.8 Szoftveres figyelő ("watchdog") beállítása
  - 2.9 E-mail titkosító kulcspárok létrehozása a "gpg" programmal
  - 2.10 A rendszernapló (log) és kezelése
    - 2.10.1 A "syslog" démon kiválasztása
    - 2.10.2 A naplófájlok rotálásának beállítása
    - 2.10.3 A Web-szerver naplófájljai
    - 2.10.4 A napló automatikus ellenőrzése
  - 2.11 A Web-szerver statisztikái
  - 2.12 Az "upsd" beállítása
  - 2.13 A biztonsági mentés időzítése
  - 2.14 A szükséges felhasználók/csoportok létrehozása és a lemezkvóták beállítása
  - 2.15 A "/etc/fstab" és az "init script"-ek beállítása
  - 2.16 A "tripwire" program beállítása és használata

V. EGY GYAKORLATI PÉLDA BEMUTATÁSA
VI. A JÖVŐ

- 1. Az új kernel és a khttpd
- 2. Az új Debian
- 3. Az új Apache
- 4. PHP4

VII. ALTERNATÍVÁT NYÚJTÓ PROGRAMOK A DEBIAN-BAN

- 1. Alternatívák a httpd-re
  - 1.1 Roxen
  - 1.2 Zope - Z Object Publishing Enviroment
  - 1.3 Kisebb szerverek
- 2. Alternatívák a dinamikus HTML-ek generálására
- 3. Alternatívák SQL szerverre
- 4. Alternatívák a távoli bejelentkezésre
- 5. Alternatívák az egyéb programokra

VIII. ÖSSZEGZÉS
IRODALOMJEGYZÉK
FÜGGELÉK

- 1. A GPL v2 licensz magyar nyelvű fordítása
- 2. A BSD licensz
- 3. A Debian "Social Contract" (Társadalmi szerződés) / DFSG
- 4. Debian információk
- 5. Rövidítések, szakszavak jegyzéke
- 6. Ajánlott RFC-k
- 7. A LIDS rendszer beállítása
- 8. A "GNU Free Documentation License"

MELLÉKLET
Ábrajegyzék

- 1. kép - A Web szerver helye a hálózatban
- 2. kép - Üdvözlőkép
- 3. kép - Speciális indítási paraméterek
- 4. kép - Indítási metódusok
- 5. kép - Merevlemez partícionálás
- 6. kép - A cfdisk program
- 7. kép - Modulok kiválasztása és betöltése a modconf programmal
- 8. kép - Hálózati modulok tallózása
- 9. kép - Az APT program beállítása
- 10. kép - dselect - Főmenü
- 11. kép - dselect - Súgó
- 12. kép - dselect - Csomaglista
- 13. kép - a "snort" program beállítása
- 14. kép - Postfix - igazolás készítése a CA.pl programmal
- 15. kép - make menuconfig
- 16. kép - make xconfig
- 17. kép - rules fájl szerkesztése
- 18. kép - Webalizer statisztika
- 1. táblázat - Az Apache moduljai
- 2. táblázat - Az engedélyezett szolgálatások listája
- 3. táblázat - PHP3 csomagok a Debian-ban
- 4. táblázat - MySQL csomagok a Debian-ban
- 5. táblázat - Partíció-terv
- 6. táblázat - Felhasználók listája 1.
- 7. táblázat - Felhasználók listája 2.
- 8. táblázat - Felhasználók listája 3.
- 9. táblázat - A kernel részei
- 10. táblázat - Autentikációs modulok
- 11. táblázat - PostgreSQL csomagok a Debian-ban
- 12. táblázat - Alternatív csomagok távoli bejelentkezésre a Debian-ban
- 13. táblázat - Shell-ek a Debian-ban

##
Előszó:

E diplomamunka remélhetőleg nem csupán számomra lesz hasznos, mint életem egy mérföldköve, hanem a magyar számítógép használók / rendszergazdák is hasznos segédeszközként forgathatják majd, amíg (és milyen gyorsan) el nem avul a benne lévő információ.
Amióta figyelemmel kísérem a Linux kernelre1 épülő operációs rendszerek fejlődését, mind az informatika (hardver), mind maga a Linux és a köréje épülő programok óriási fejlődésen mentek keresztül. Persze, ha mindezen fejlődést Richard M. Stallmann2 szemszögéből vizsgálnám - az ő több évtizedes szakmai tapasztalatai szerint - akkor még hangsúlyosabban érezhetővé válna számomra, hogy exponenciális fejlődés van folyamatban mind a két szektorban3. A Linux úgyszólván a semmiből jött. Egy finn egyetemista programozónak4 nem tetszett az otthoni PC-jén lévő operációs rendszer és elkezdett írni egy rendszermagot saját szórakozására. Később a különböző szabad szoftvereket kezdték el párosítani ezzel a kernellel (mely szintén szabad szoftver). Sikerrel. Ma már széles körben elterjedtek (és egyre jobban elterjednek) ezek a rendszerek, világcégek támogatják fejlődését, miközben kezd jó üzletté válni használata, forgalmazása és kereskedelmi szoftverek e platformra ültetése.
Hogy hasznos-e, szükséges-e vagy sem az emberiség szempontjából ez a rohanó fejlődés, azt ilyen távlatokból helyesen még nem szemlélhetjük. Vajon hova vezet ez az őrült tempó és a "Bigger, Better, Faster, More" (nagyobb, jobb, gyorsabb, több) szemlélete, hosszabb távon nem káros-e a társadalomra, az emberiségre? A hatalom azok kezébe kerül, akik lehető leghamarabb birtokolják az információt. A hadviselés is már a kiber-háborúban, az ellenség informatikai eszközeinek megbénításában gondolkozik.
Nem tagadható, a XXI. század az információs társadalom kora, s "aki kimarad, lemarad". Egy biztos: egyre nehezebb befogadni és feldolgozni az egyre nagyobb mennyiségű információt. Ezért remélem, hogy a magyar nyelvű olvasók számára ez a mű hasznos, friss és a gyakorlatban felhasználható információkat nyújthat.

##
Köszönetnyilvánítás:

Köszönettel tartozom a következő embereknek:

- Szüleimnek, amiért lehetővé tették, hogy tanulhassak.

- Konzulensemnek, Borbély Istvánnak az önzetlen segítségért.

- Lektoraimnak: Bíró Dávidnak, Nagy Attilának, Sári Gábornak és a többieknek.

- A szolnoki Linux-klub tagjainak, főképp: Böszörményi Zoltánnak, Herczeg Ferencnek, Kerekes Gyulának, Sári Gábornak és Takács Sándornak és a szakmai segítségért.

- A magyar Debian fejlesztőknek, kiemelten: Madarász Gergelynek, Szalay Attilának.

- A Security-l levelező lista tagjainak, kiemelten: Magosányi Árpádnak, Mátó Péternek.

- Scheidler Balázsnak a syslog-ng programért.

- Az egész magyar Linux-os közösségnek, az LME5-nek, az MLF6-nek, a levelezőlistáknak. A Linux-os konferenciák és összejövetelek szervezőinek.

- Tanáraimnak.