Információs rendszerek üzemeltetése Linux admin



Hasonló dokumentumok
Szkriptnyelvek. 1. UNIX shell

AWK programozás, minták, vezérlési szerkezetek

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

BASH SCRIPT SHELL JEGYZETEK

AWK programozás Bevezetés

Információs rendszerek üzemeltetése Linux admin

Operációs Rendszerek II. labor. 2. alkalom

S z á m í t ó g é p e s a l a p i s m e r e t e k

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

IPTABLES. Forrás: Gregor N. Purdy: Linux iptables zsebkönyv

AWK programozás, minták, vezérlési szerkezetek

Hálózatok építése és üzemeltetése

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

PHP-MySQL. Adatbázisok gyakorlat

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek gyak.

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu

1. Alapok. #!/bin/bash

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

Szalai Ferenc

Miért jó ez: A Xampp csomag előnyös tulajdonságai: rendkívül jól felszerelt naprakész telepíteni-és frissíteni gyerekjáték.

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Linux alapok gyakorlat

Operációs rendszerek gyak.

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Oktatási cloud használata

Operációs rendszerek 1.

Hardver és szoftver követelmények

ALAP BEÁLLÍTÁSOK. 1. Jogosultság megadás, hogy tudjunk dolgozni sudo s jelszó:xxxxxx. 2.Hálózati kártyák beállítása mcedit /etc/network/interfaces

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

LINUX LDAP címtár. Mi a címtár?

III. Felzárkóztató mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

PHP. Adatbázisok gyakorlat

BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)

8. WebDAV kiszolgáló konfigurálása

BASH script programozás II. Vezérlési szerkezetek

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

1.2. NFS kliens telepítése és beállítása

Telepítés, újratelepítés több számítógépre, hálózatos telepítés Kulcs-Bér program

ALKALMAZÁSOK ISMERTETÉSE

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

chmod umask chown, chgrp

Hálózati rendszerek adminisztrációja JunOS OS alapokon

Számítógépes Hálózatok GY 8.hét


Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Netfilter. Csomagszűrés. Összeállította: Sallai András

Bár a szoftverleltárt elsősorban magamnak készítettem, de ha már itt van, miért is ne használhatná más is.

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

Tudás Reflektor. Copyright 2011; Kodácsy Tamás;

Hálózatos beállítás. A Novitax ügyviteli programrendszerek hálózatos beállítása a következők alapján történhet:

WordPress segédlet. Bevezető. Letöltés. Telepítés

Számítógépes Hálózatok. 8. gyakorlat

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Java-s Nyomtatványkitöltő Program Súgó

IP-címhez kötött webszolgáltatások használata idegen IP-című gépről

Számítógépes Hálózatok

Ingyenes DDNS beállítása MAZi DVR/NVR/IP eszközökön

BackupPC. Az /etc/hosts fájlba betehetjük a hosztokat, ha nem a tejles (fqdn, DNS név) névvel hivatkozunk rájuk: # /etc/hosts #

A NÉGY BŰVÖS HÁRMAS WWW FTP SQL PHP. BRKK::Békéscsaba Linux rendszergazda képzés 2008

Adatbiztonság a gazdaságinformatikában ZH december 7. Név: Neptun kód:

BaBér bérügyviteli rendszer telepítési segédlete év

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Információs rendszerek üzemeltetése Linux admin

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Számítógépes Hálózatok GY 9.hét

Hálózati beállítások Készítette: Jámbor Zoltán 2016

A T-Online-os Ügyfelek postafiókjainak áttétele Virtualoso szolgáltatásra. Ha az ügyfél már rendelkezik saját domain névvel

Virtual Call Center kliens program MSI csomag telepítése

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Programozás alapjai óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely

Hálózati eszközök biztonsága

T-Online-os Ügyfelek postafiókjainak áttétele Virtualoso szolgáltatásra. Ha az ügyfél még nem rendelkezik saját domain névvel

OE-NIK 2010/11 ősz OE-NIK ősz

Hálózati architektúrák és Protokollok PTI 6. Kocsis Gergely

Általános fiók beállítási útmutató

Digitális aláíró program telepítése az ERA rendszeren

Rendszerkövetelmények

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Segédlet a Hálózati architektúrák és protokollok laborgyakorlathoz v0.6

Operációs Rendszerek példatár. Utolsó frissítés: február 10.

Tanúsítványkérelem készítése, tanúsítvány telepítése Apache szerveren

FTP szerver telepítése

INFORMATIKAI ALAPISMERETEK

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

A netfilter csomagszűrő tűzfal

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

EDInet Connector telepítési segédlet

Aktiválási segédlet a Partnercég opcióhoz. A TeleMátrix adminisztrációs felületének használata Partnercég opció igénybevétele esetén

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Átírás:

Információs rendszerek üzemeltetése Linux admin BME TMIT 2014 Oldalszám 0 Bevezetés 2 0.1 A rendszer elindítása........................ 4 1 Bemelegítés 4 1.1 Linux tűzfal az iptables...................... 4 1.2 Felhasználókezelés......................... 10 1.3 SSH konfiguráció.......................... 10 2 Adatok kezelése 11 2.1 A MySQL beüzemelése....................... 11 2.2 MySQL adminisztráció....................... 11 3 Címtár (opcionális) 12 3.1 Az LDAP címtár.......................... 12 3.2 Bejelentkezés a címtárba...................... 14 3.3 Adatok lekérdezése......................... 14 3.4 Adatok hozzáadása, módosítása.................. 16 4 Az Apache 2 webkiszolgáló 17 4.1 Az Apache 2 telepítése....................... 20 4.2 Az Apache biztonsági beállításai.................. 21 4.3 A.htaccess............................. 22 5 Linux héjprogramozás 24 5.1 A bash................................ 25 5.2 Karakterfolyamok kezelése..................... 28 Hivatkozások 37 5.3 Appendix.............................. 38 1

0 BEVEZETÉS 0 Bevezetés Ez a labormérés jelentős interaktivitást kíván meg: tipikusan minden feladatnál a Linux-os man oldalakat, Internetes keresőt kell használni. A feladatok után megadott támogató megjegyzés nem a megoldás, csak iránymutató segítség nem elég ezt begépelni. A labormérés öt témakörön és rengeteg feladaton keresztül próbál képet adni a Linux adminisztrátorok világáról. Így a labor betekintést nyújt a felhasználók körüli informatikai adminisztráció kezelésébe és a tűzfalak világába is. Az elvégzendő feladatok elvezetnek egészen a sárga köves útig, amely egyenesen a napjaink egyik legnépszerűbb webkiszolgálójának, az Apache-nak a legmélyebb bugyraiba vezet. És végezetül a feladatok egy pillanatra megpihennek a adminisztrátori feladatok automatizálásának, a héjprogramok írásának napsütötte partjain is. A segédletben szereplő összes feladat tökéletes megoldása nem kötelező, de minden témakörből legalább 40%-ot el kell érni a labor sikeres teljesítéséhez. A labor sikeres elvégzésbe csak a szimbólummal jelölt feladatok számítódnak bele, a többi feladat amolyan ráhangolódás, illetve hasznos segítséget jelent a jelölt feladatok megoldásához. Így, természetesen, a nem jelölt feladatok megoldása nem kötelező, de hasznos lehet. Az opcionálisként jelölt feladatok megoldása sem kötelező, de ezen feladatok beleszámítanak a végső értékelésbe, mégpedig oly módon, hogy pontszámuk hozzáadódik azon témakör pontszámához, amelyből nem sikerült 40%-ot elérni. Amennyiben egy feladat ábécézve van akkor az A, B, C, D részfeladatok közül nem kell mindet megoldani, csak azt, amelynek a kódja az Ön NEPTUN kódjából származtatható. Ehhez csak a NEPTUN kód karaktereinek a ASCII kódját (lásd 1. ábra) kell összegezni, majd venni a néggyel vett maradékát. Amennyiben a maradék i) nulla, akkor Önnek az A jelű feladatot, amennyiben ii) egy, akkor a B jelű feladatot, amennyiben iii) kettő, akkor a C jelű feladatot, és végezetül amennyiben iv) három, akkor a D jelű feladatot kell megoldani. A feladatok sikeres megoldását egy (bash) héjprogram a labor végén automatikusan ellenőrzi, ennek elindításához mérésvezetői segédlet szükséges. A program nem csak ellenőrzi és értékeli a feladatokat, hanem magát a labor elvégzését bizonyító ellenőrző kóddal ellátott jegyzőkönyvet is legenerálja (és majd ezt a fájlt kell elküldeni az iru.bme@gmail.com címre). Sajnos egy buta program az emberi szemhez képest kevésbé elnéző, ezért a következő szabályok betartása gyakorlatilag elengedhetetlen a labor sikeres elvégzéséhez: Mindig használják a feladatokban megadott felhasználói neveket és jelszavakat! A jelszó az esetek döntő többségében az Önök NEPTUN kódja lesz, ezt írják mindig ugyanabban a formátumban (azaz ha a NEPTUN kód almafa, akkor az használható AlMafA -ként is, de akkor végig csak ebben a formában). 2

0 BEVEZETÉS 1. ábra. ASCII kódok Amennyiben futtatható héjprogramot, szkriptet kell írni, akkor annak nevét származtassa a feladat sorszámából az alábbi módon: 7.4.A feladat 7_4.sh, azaz a feladat sorszámában szereplő pontokat egyszerűen cserélje le alulvonásokra és illessze a végére az sh végződést. A programokat másolja minden esetben a laboruser felhasználó bin könyvtárába (/home/laboruser/bin). Amennyiben ez a könyvtár nem létezik, akkor hozza létre. Ne feledjen futtatási jogokat adni a fájlnak! Minden esetben pontosan kövesse a megadott specifikációkat! A segédlet végén igyekeztünk összegyűjteni a labor sikeres elvégzéséhez nélkülözhetetlennek vélt és erősen ajánlott könyvek, jegyzetek listáját. De ha mégis választanunk kellene, akkor mi a következő könyveket ajánlanánk: 1. Tony Bautts, Terry Dawson, Gregor N. Purdy: Linux hálózati adminisztrátorok kézikönyve, 2. Arnold Robbins and Nelson H. F. Beebe: Classic Shell Scripting, 3. Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley: Unix and Linux System Administration Handbook és 4. Lars Wirzenius, Joanna Oja, Stephen Stafford, Alex Weeks: Linux rendszeradminisztrátorok kézikönyve. 3

0.1 A rendszer elindítása 1 BEMELEGÍTÉS A könyveken és jegyzeteken túl hiperhivatkozásokkal is kibővítettük az ajánlott irodalmak listáját. Ezek mindegyike egy-egy témakör elmélyítését segítheti elő, egy-egy trükköt vagy módszert szemléltetnek, mutatnak be. Ezek közül szeretnénk kiemelni az Ubuntu Linux hivatalos dokumentációját, ahol számos problémára hasznos tanácsot kaphatunk, és amely megoldások könnyen átemelhetőek más Debian alapú Linux disztribúciókba is. Végezetül nincs más hátra, mint hogy eredményes labor és sok sikert kívánjunk Önöknek! A rendszer elindítása A VM elindítása VMWare playerben indítsa el a virtuális gépet! Amennyiben az feldob egy ablakot, melyben a VM eredetére kíváncsi, válassza az I copied it opciót! A gazda rendszerbe visszatérni a Ctrl+Alt kombinációval lehet. Hozzáférési adatok A virtuális gépre két felhasználó áll rendelkezésre: felhasználói név: root jelszó: irulabor felhasználói név: laboruser jelszó: laboruser A virtuális gépre laboruserként jelentkezzen be! 1 Bemelegítés 1.1. feladat: Nézze meg, hogy a rendszeren mely szolgáltatások várnak hálózati kapcsolatokra (figyelnek adott porton), és azok mire valók! Hasznos parancsok: man netstat, netstat -l Linux tűzfal az iptables A Linux kernel hálózati csomagkezelő alrendszerét NetFilternek nevezik, amely az iptables paranccsal konfigurálható. Az iptables a csomagkezelő funkciókat (pl. csomagszűrés, hálózati címfordítás) táblákba csoportosítja, amelyek mindegyike feldolgozási láncokat (chain) tartalmaz. A láncok illeszkedési szabályokból (mely csomagokra kell alkalmazni) és célokból (mi lesz a illeszkedő csomag sorsa) állnak. Az iptables az OSI referenciamodel harmadik (hálózati) szintjén működik [1]. 4

1.1 Linux tűzfal az iptables 1 BEMELEGÍTÉS 2. ábra. A csomagok lehetséges haladási útvonalai és a kapcsolódási pontok címfordítás esetében [1]. 3. ábra. A csomagok lehetséges haladási útvonalai és a kapcsolódási pontok szűréskor [1]. Az iptables öt kapcsolódási pontot definiál a kernel csomagfeldolgozási útvonalában, ezek neve rendre PREROUTING, INPUT, FORWARD, POSTROUTING és OUTPUT. Láncokat ezekhez a pontokhoz lehet csatlakozatni. Az 2. ábra azt mutatja, milyen útvonalon haladnak keresztül a csomagok a rendszerben hálózati címfordítás során. A 3. ábra azt mutatja, milyen útvonalon haladnak keresztül a csomagok a rendszerben szűrés esetében. Végezetül a 4. ábra azt mutatja, milyen útvonalon haladnak keresztül a csomagok a rendszerben módosításkor. A 1. tábla felsorolja a kernelben definiált kapcsolódási pontokat, és az egyes kapcsolódási pontokon elvégezhető feladatokat. 5

1.1 Linux tűzfal az iptables 1 BEMELEGÍTÉS 4. ábra. A csomagoklehetséges haladási útvonalai és a kapcsolódási pontok csomagok módosításához [1]. Kapcsolódási pont FORWARD INPUT OUTPUT POSTROUTING PREROUTING Lehetővé teszi a csomagok feldolgozását amikor azok áthaladnak az átjáró számítógépen mielőtt azokat egy helyi folyamat megkapná miután azokat egy helyi folyamat létrehozta épp mielőtt elhagynák a hálózati interfészt épp miután megérkeztek a hálózati interfészen (de miután eldobásra került az összes olyan csomag, amelyet az interfész promiscuous módban történő üzemeltetése okán kaptunk, illetve a hibás ellenőrző kóddal rendelkező csomagok eldobása után) 1. táblázat. A csomagok útvonalában definiált kapcsolódási pontok. 6

1.1 Linux tűzfal az iptables 1 BEMELEGÍTÉS Tábla neve nat filter mangle Leírás csomagok átirányítására használható hálózati címfordítás céljára; tipikusan a forrás- és célcímet használja; beépített láncai az OUTPUT, a POSTROUTING és a PREROUTING a számítógépre bejövő, az onnan kimenő, illetve a gépen átfolyó forgalmak szűrésére használható; beépített láncai a FORWARD, az INPUT, az OUTPUT csomagok megváltoztatására, módosítására használható; beépített láncai a FORWARD, az INPUT, az OUTPUT, a POSTROUTING és a PREROUTING 2. táblázat. A iptables beépített táblái. Táblák Az iptables három beépített táblával rendelkezik. Ezek a filter, a mangle és a nat nevet viselik. Mindegyik tábla egy vagy több (inkább több) lánccal van felvértezve, amelyek a 1. táblában látható kapcsolódási pontok valamelyikének felelnek meg, ahogy azt az 2-4. ábra is mutatja. A beépített táblákat a 2. táblázatban mutatjuk be. Az alapértelmezett tábla a filter. Láncok Alapértelmezésben minden tábla üres láncokkal van feltöltve, amelyek egy-egy kapcsolódási ponthoz vannak rendelve (lásd 5 ábra). Minden lánc rendelkezik egy saját eljárással (policy), ami megmondja, hogy mi lesz azon csomagok sorsa, amelyek elérik a lánc végét anélkül, hogy valamely célhoz (lásd két fejezettel lejjebb) kerülnének. Csak az ACCEPT és a DROP célok használhatóak saját eljárásként. Az alapértelmezett az ACCEPT. A felhasználók által létrehozott láncok saját eljárása RETURN, ami nem változtatható meg. Szabályok Az iptables szabályai egy vagy több illeszkedési mintából és egy célból állnak. A minta megmondja, hogy mely csomagokra kell alkalmazni a szabályt, míg a cél arról árulkodik, hogy milyen módon kell az illeszkedő csomagokat módosítani. A rendszer minden szabályhoz fenntart egy byte- és egy csomagszámlálót. A szabály illeszkedési mintája és célja is opcionális. Amennyiben nincs illeszkedési minta megadva, akkor az a szabály minden csomagra érvényes, és amennyiben nincs cél megadva, akkor az illeszkedő csomaggal semmi sem történik (a csomag feldolgozása teljes egészében olyan, mintha a szabály nem is létezne, leszámítva, hogy a byte- és csomagszámláló frissítésre kerül). Egy ilyen üres szabály a FORWARD lánchoz a következő két utasítás valamelyikével adható: 1 $ iptables -t filter -A FORWARD 2 $ iptables -A FORWARD 7

1.1 Linux tűzfal az iptables 1 BEMELEGÍTÉS 5. ábra. A csomagok haladási útvonala. 8

1.1 Linux tűzfal az iptables 1 BEMELEGÍTÉS Célok A célok meghatározzák, hogy mi a teendő azokkal a csomagokkal, amelyek illeszkednek egy szabályra. Az iptables a következő négy célt definiálja alapértelmezésben: ACCEPT Továbbengedi a csomagot a feldolgozás következő állomására. Az adott lánc feldolgozását leállítja. DROP Teljes egészében befejezi a csomag feldolgozását, azaz semmilyen további szabály, lánc vagy tábla nem kerül ellenőrzésre. Ha a küldő számára valamilyen üzenet küldése lenne a cél, akkor a REJECT (kiegészítésként elérhető) célt kell használni. QUEUE Egy, a kernelen kívüli kódrészlethez (felhasználói tét) továbbítja a csomagot. RETURN A felhasználói lánc szabályában abbahagyja a lánc feldolgozását és folytatja a hívó lánc feldolgozását. Egy beépített lánc szabályában abbahagyja a lánc feldolgozását és a lánc saját eljárását alkalmazza rá. Mintapéldák Az átjáró 80-as (HTTP) portján bejövő forgalom átirányítása egy a belső hálózaton található 192.168.1.3 IP című webszerver 8080-as portjára: iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.3:8080 Kimenő HTTP forgalom átírányítása a tűzfallal ellátott számítógép 8888-as portján hallgatózó transzparens proxy-nak 1 : iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8888 A bejövő ping kérések véletlenszerűen kiválasztott 10%-nak az eldobása: iptables -A INPUT -p icmp --icmp-type ping -m random --average 10 -j DROP Az iptables parancsról minden alapvető információ megszerezhető az alábbi utasítások segítségével: 1 A transzparens proxy egy olyan megoldás, amelynek segítségével a kimenő kapcsolatok egy előre specifikált része elkapható és átirányítható egy olyan számítógéphez, amely majd kiszolgálja azokat. Ez a módszer lehetőséget nyújt proxy használatára a hálózatban levő gépek egyesével történő felkonfigurálása nélkül. Az alhálózatból kimenő összes forgalom áthalad az átjárón, ezért észrevétlenül egy adott proxyhoz irányíhatóak. 9

1.2 Felhasználókezelés 1 BEMELEGÍTÉS 1 $ iptables -h 2 $ iptables -m match -h 3 $ iptables -j TARGET -h 4 $ man iptables 1.2. feladat: Nézze meg, hogy az adott szolgáltatásokra jelenleg milyen tűzfalszabályok vonatkoznak ki- és bemenő forgalom esetén! Hasznos parancsok: iptables -L, iptables -t filter -L, iptables -t nat -L,iptables -t mangle -L 1.3. feladat: A céges policy-k szerint a távoli bejelentkezést biztosító szolgáltatásoknak (ssh) csak a lokális hálózatról kell elérhetőnek lenniük. Módosítsa a tűzfalszabályokat ennek megfelelően! 1.4. feladat: A céges policy-k szerint a gépnek nem szabad válaszolnia a pingelésre. Módosítsa ennek megfelelően a tűzfal szabályait! Felhasználókezelés 1.5. feladat: Adjon hozzá a rendszerhez egy új felhasználót, akinek a neve legyen mekkelek, jelszava pedig az Ön NEPTUN kódja! Nézze meg, milyen új bejegyzés született az /etc/passwd fájlban! Hasznos parancs: adduser 1.6. feladat: Tegye lehetővé az új felhasználó számára, hogy rendszergazda jogokkal futtathasson minden programot! Hasznos parancs: visudo SSH konfiguráció 1.7. feladat: A biztonság érdekében tiltsa le a root felhasználó SSH-n történő bejelentkezésének jogát! Hasznos parancsok: mc,/etc/ssh/sshd_config,/etc/init.d/ssh restart 1.8. feladat (opcionális): Valósítson meg RSA kulcsokkal működő autentikációt a fizikai és a virtuális gép között a saját, újonnan létrehozott (mekkelek) felhasználó számára! Ehhez az ssh-keygen program segítségével hozzon létre egy új publikus-privát kulcspárt. A létrehozott kulcspár privát részét másolja át a gazdagépre, majd a puttygen program segítségével konvertálja át a PuTTY számára emészthető formátumba. Végezetül a virtuális gépen a 1 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 10

2 ADATOK KEZELÉSE parancs kiadásával engedélyezze Mekk Elek RSA bejelentkezését! Tesztelje le az új lehetőséget! 2 Adatok kezelése A MySQL beüzemelése 2.1. feladat: Telepítse a MySQL szoftvert (mysql-server) a guest gépre! Az adminisztrátor jelszava az egyszerűség kedvéért legyen root! Természetesen éles környezetben nehezen kitalálható jelszavakat kell használni. Nézze meg, hogy a szerver melyik verzióját sikerült installálnia! Hasznos parancs: apt-get install 2.2. feladat: Vizsgálja meg a mysql szerver beállításait (/etc/mysql)! Derítse ki, hogy milyen porton figyel a mysql szerver, és hol tárolja az adatbázisokat. Hasznos parancsok: mc, a Ctrl+o kombinációval lehet a futó mc-t láthatatlanná és ismét láthatóvá tenni 2.3. feladat: A netstat parancs segítségével állapítsa meg, hogy fogad-e kéréseket a mysql szerver, és ezt TCP vagy UDP protokollon teszi-e, továbbá hogy elérhető-e a mysql szolgáltatás a képen kívülről, tehát a helyi hálózatból, vagy bármilyen IP címről! Hasznos parancs: netstat 2.4. feladat: Jelentkezzen be a telepítéskor megadott jelszóval rendszergazdaként a mysql parancssorába, és listázza ki a adatbázisokat. Hasznos parancsok: mysql -u root -p,show DATABASES; MySQL adminisztráció 2.5. feladat: A /root/students.sql fájlban található exportált adatbázist töltse fel a mysql szerverre. Hasznos mysql parancs: help 2.6. feladat: SQL parancsok segítségével ismerje meg az egyszerű mintaadatbázist! Találja ki, mi lehet a célja az adatbázisnak, és melyik táblában mit tárol! Hasznos mysql parancsok: SHOW DATABASES;, DESCRIBE students.students;, SELECT * FROM students.courses; 11

3 CÍMTÁR (OPCIONÁLIS) 2.7. feladat: Mysql parancsokkal töltsön fel táblánként legalább egy-egy új rekordot az adatbázisba, amelyek megfelelnek a sémáknak, és a táblák összefüggéseinek is. Az új hallgató neve legyen Mekk Elek az Ön NEPTUN kódjával. Mekk Elek 1974. április 1-én született. Hasznos mysql parancsok: SELECT,INSERT 2.8. feladat: A felhasználók a mysql nevű adatbázis user táblájában vannak, felhasználói név és host alapján. Listázza ki a felhasználókat a root felhasználón kívül van más bejegyzés is? Ha igen, milyen jogosultságok tartoznak hozzá? Jelent-e ez bármilyen veszélyt? Hasznos parancs: SHOW GRANTS; 2.9. feladat (opcionális): Adjon az adatbázishoz egy új felhasználót ( mekkelek - et az Ön NEPTUN kódjával mint jelszóval), akinek az általunk létrehozott adatbázis fölött teljes joga van akkor, ha localhost-on jelentkezik be, ugyanakkor semmi máshoz ne legyen joga. Az eredményt írassa ki a SHOW GRANTS FOR parancs segítségével! 3 Címtár (opcionális) Az LDAP címtár Az LDAP (Lightweight Directory Access Protocol) címtár egy speciális adatbázis tulajdonság alapú információkezeléssel és fa hierarchiával (DIT - directory information tree, lásd 6. ábra). A fa minden csúcsában bejegyzések szerepelnek. A bejegyzéseknek típusa (objectclass) van (egyszerre több is lehet), ami megadja, hogy milyen attribútumai lehetnek, és hogy mely attribútum megléte a kötelező [1]. Az LDAP bejegyzéseket a könyvtárban a relatív megkülönböztetett névként (Relative Distinguished Name, RDN) tároljuk, az egyes bejegyzéseket viszont a megkülönböztetett nevükkel (Distinguished Name, DN) érjük el. Ez tartalmazza a fa csúcsától a bejegyzésig vezető utat, így válik a hivatkozás egyértelművé: cn=robert Smith,ou=people,dc=tmit,dc=bme,dc=hu. Mit jelent az objectclass attribútum? Az LDAP könyvtár minden elemének van egy ún. objectclass attribútuma, és ennek az attribútumnak legalább egy értékkel kell rendelkeznie. Természetesen az objectclass attribútum rendelkezhet több értékkel is. Mindegyik objectclass érték sablonként szolgál a bejegyzésnél tárolt adatok számára. Meghatározza, mely attribútumokkal kell, illetve hogy milyen attribútumokkal rendelkezhet opcionálisan a bejegyzés. Nézzünk egy példát: 12

3.1 Az LDAP címtár 3 CÍMTÁR (OPCIONÁLIS) 6. ábra. DIT Directory Information Tree # Clifford D. Conner, people, tmit.bme.hu dn: cn=clifford D. Conner,ou=people,dc=tmit,dc=bme,dc=hu objectclass: inetorgperson cn: Clifford D. Conner mail: clifford.conner@example.com ou: Office sn: smith telephonenumber: 555-111-2225 uid: rjsmith Ebben az esetben a bejegyzés az inetorgpersonobjectclass-ba tartozik. LDIF Az LDAP Interchange Format (LDIF) egy egyszerű állomány formátum, amelyben az LDAP címtár tartalmát lehet tárolni, vagy amelyben az LDAP szerver vizualizálja a keresések eredményeit. A legegyszerűbb formájában az állomány: bejegyzések listája, amelyeket üres sorok választanak el egymástól, attribútumok és értékek összerendelése, direktívák összessége, amelyek utasítják a parszert, hogy milyen módon dolgozza fel az információt. Az első két tulajdonság éppen az, amely szükséges az LDAP címtár tartalmának a leírásához. Amikor LDIF formátumban lévő adatot viszünk be a címtárba, akkor a rendszer minden esetben ellenőrzi, hogy a benne lévő adatok megfelelnek-e az LDAP címtár sémájának. Nézzük meg a címtár gyökérelemét, amelynek a megkülönböztető neve (DN) dc=tmit,dc=bme,dc=hu: # tmit.bme.hu dn: dc=tmit,dc=bme,dc=hu 13

3.2 Bejelentkezés a címtárba 3 CÍMTÁR (OPCIONÁLIS) objectclass: top objectclass: dcobject objectclass: organization o: IRU dc: tmit Az LDIF formátum néhány alapvető eleme: A kommentek az LDIF fájlban # karakterrel kezdődnek, aminek a sor elején kell lennie. A komment az aktuális sor végéig tart. Az attribútumokat és a hozzájuk tartozó értékeket kettőspont választja el. Az értéktől a kettőspont karaktert egy üres karakter választja el. A dn attribútum egyértelműen meghatározza a bejegyzés DN-jét. Bejelentkezés a címtárba A címtárban műveleteket végezni csak a címtár entitásai tudnak, így ahhoz hogy használjuk, be kell jelentkeznünk egy címtárbeli elem nevében. Az LDAP kliens programokkal a következő paraméterekkel tudunk belépni LDAP adminisztrátorként: 1 $ ldapwhoami -D "cn=admin,dc=tmit,dc=bme,dc=hu" -W Az ldapwhoami parancs kiírja, hogy milyen felhasználóként sikerült bejelentkezni a rendszerbe, ez a bejelentkezést segíti. Az utána következő paraméterek megadják a bejelentkező felhasználó címtárbeli helyét, illetve a bejelentkezés módját állítják. Ezek a paraméterek az ldap-utils programcsomag többi eszközével is működnek. Hozzáférési adatok Az LDAP-ban adminisztratív felhasználó: cn=admin,dc=tmit,dc=bme,dc=hu jelszava: rootpass A people ou más tagjainak jelszava: pass Adatok lekérdezése 3.1. feladat: Listázza ki a teljes tartományt (dc=tmit,dc=bme,dc=hu)! Hasznos parancs: ldapsearch -D "cn=admin,dc=tmit,dc=bme,dc=hu" -W -b "dc=tmit,dc=bme,dc=hu" "objectclass=*" 14

3.3 Adatok lekérdezése 3 CÍMTÁR (OPCIONÁLIS) 3.2.A feladat: Listázza a people ou azon tagjait, akik az irodában dolgoznak (ou: Office). A listázást az LDAP adminisztratív felhasználójaként (cn=admin, dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a /home/laboruser/bin könyvtárban újonnan létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl első sora! 3.2.B feladat: Listázza a people ou azon tagjait, akik az informatikai csoporthoz tartoznak (ou: IT dept). A listázást az LDAP adminisztratív felhasználójaként (cn=admin,dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a/home/laboruser/bin könyvtárban újonnan létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl első sora! 3.2.C feladat: Listázza a people ou azon tagjait, akiknek a telefonszáma 555-111-2226. Mit írt a parancssorba? A listázást az LDAP adminisztratív felhasználójaként (cn=admin,dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a/home/laboruser/bin könyvtárban újonnan létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl első sora! 3.2.D feladat: Listázza a peopleou azon tagjait, akik inetorgperson objectclassal rendelkeznek. A listázást az LDAP adminisztratív felhasználójaként (cn=admin, dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a/home/laboruser/bin könyvtárban újonnan létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl első sora! 3.3.A feladat (opcionális): Listázza a peopleou tagjait, de csak a megkülönböztető nevét (dn) és a szervezeti egységét (ou) írja ki. A listázást az LDAP adminisztratív felhasználójaként (cn=admin,dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a/home/laboruser/bin könyvtárban az előző feladat során létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl második sora! 3.3.B feladat (opcionális): Listázza a people ou tagjait, de csak a megkülönböztető nevét (dn) és a mailcímét írja ki. A listázást az LDAP adminisztratív felhasználójaként (cn=admin,dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a/home/laboruser/bin könyvtárban az előző feladat során létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl második sora! 15

3.4 Adatok hozzáadása, módosítása 3 CÍMTÁR (OPCIONÁLIS) 3.3.C feladat (opcionális): Listázza a doménben található szervezeti egységeket (objectclass: organizationalunit), de csak a megkülönböztető nevét (dn) és a leírását írja ki (lehet, hogy nincs minden ou-nak leírása). A listázást az LDAP adminisztratív felhasználójaként (cn=admin,dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a /home/laboruser/bin könyvtárban az előző feladat során létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl második sora! 3.3.D feladat (opcionális): Listázza a people ou tagjait, de csak a megkülönböztető nevét (dn) és a leírását írja ki. A listázást az LDAP adminisztratív felhasználójaként (cn=admin,dc=tmit,dc=bme,dc=hu) hajtsa végre, és a kiadott parancsot helyezze el a/home/laboruser/bin könyvtárban az előző feladat során létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl második sora! 3.4. feladat (opcionális): Listázza ki a teljes tartomány azon tagjait, akik rendelkeznek leírással, de csak a megkülönböztető nevét (dn) és a leírását írassa ki. Korlátozza a kimeneti formátumot 1. verziós LDIF-re, és a kimenet legyen kommentektől mentes. A listázást az LDAP adminisztratív felhasználójaként hajtsa végre, és a kiadott parancsot helyezze el a /home/laboruser/bin könyvtárban az előző feladatok során létrehozott 3.txt elnevezésű fájlban! Ez a parancs legyen a fájl harmadik sora! Adatok hozzáadása, módosítása Az LDAP bemenete csakúgy mint a kimenete LDIF formátumú. Az adatbázishoz hozzáadni és módosítani az ldapadd és ldapmodify parancsok segítségével lehet. A standard inputon is be lehet vinni az adatokat, de a legcélszerűbb előre elkészíteni az LDIF fájlt, és a -f paraméterben megadni a fájl nevét. 3.5. feladat (opcionális): Adjon hozzá felhasználót a people ou-hoz, hasonlóan a már ottlevőkhöz. Nem kell minden paramétert kitöltenie, csak a fontosabbakat. Adja meg az LDIF fájlt, és a bevitelhez használt parancsot! Az új felhasználó adatai legyenek a következők: dn: cn=mekk Elek,ou=people,dc=tmit,dc=bme,dc=hu objectclass: inetorgperson cn: Mekk Elek ou: office uid: mekkelek sn: Budapest userpassword: AZ_ON_NEPTUN_KODJA 16

4 AZ APACHE 2 WEBKISZOLGÁLÓ 3.6. feladat: Mint azt már korábban láthattuk az LDAP-ot használó felhasználók egyben az adatbázis elemei is. Az itt megadott jelszavukkal tudnak bejelentkezni. Ha bevitelkor nem adott meg jelszót, most adjon. Az ehhez rendelkezésre álló eszköz a ldappasswd. Ezek után tesztelje a jelszavát az ldapwhoami parancssal! A bejelentkezésnek sikerülnie kell! 3.7. feladat (opcionális): Az LDAP-ban létre lehet hozni csoportokat, amelyek nem törik meg a fa struktúrát, csak a csoport tagjainak megkülönböztető neveit tárolják (az 6. ábrán nyilak jelölik). Az előző feladatban hozzáadott felhasználót adja hozzá az LDAPAdmins grouphoz! Standard inputról a feladat a következőképp végezhető el: 1 $ ldapmodify -D <admin DN> -W 2 password: [enter password] 3 dn: cn=vipb,ou=groups,dc=example,dc=com 4 changetype: modify 5 add: member 6 member: cn=mekk Elek,ou=... 7 8 ^D 4 Az Apache 2 webkiszolgáló Az Apache a Linux rendszereken és talán a világon a legszélesebb körben használt webkiszolgáló (lásd 7. és 8. ábra). Az Apache 2 beállítása egyszerű szöveges beállítófájlokban elhelyezett direktívákkal történik. A beállítások a következő fájlokba és könyvtárakba vannak szétosztva apache1,linuxhalo: apache2.conf : Az elsődleges Apache 2 konfigurációs fájl. Az Apache 2 globális beállításait tartalmazza. conf.d : Az Apache 2-re globálisan érvényes beállítófájlokat tartalmaz. envvars : Az Apache 2 környezeti változóit tartalmazza. httpd.conf : Történetileg az elsődleges Apache 2 konfigurációs fájl, amelyet a httpd démonról neveztek el. Ez a fájl felhasználóspecifikus beállításokat tartalmazhat, amelyek globálisan befolyásolják az Apache 2-t. mods-available : Ez a könyvtár a modulok betöltésére és beállítására szolgáló konfigurációs fájlokat tartalmaz. Nem minden modulhoz egy-egy beállítófájl tartozik. mods-enabled : Szimbolikus linkeket tartalmaz az /etc/apache2/mods-available fájljaira. A modul konfigurációs fájljára mutató szimbolikus link létrehozása után az adott modul bekapcsolásra kerül az Apache 2 következő újraindításakor. 17

4 AZ APACHE 2 WEBKISZOLGÁLÓ 7. ábra. A (aktív) HTTP szerverek piaci részesedése a Netcraft mérései alapján ports.conf : Az Apache 2 által figyelt TCP portokat tartalmazza. A Listen direktíva megadja azt a portot és opcionálisan IP-címet, amelyen az Apache 2-nek figyelnie kell a kéréseket. Ha az IP-cím nincs megadva, akkor az Apache 2 a géphez rendelt minden IP-címen figyelni fog. A Listen direktíva alapértelmezett értéke a 80. sites-available : Ez a könyvtár az Apache 2 virtuális kiszolgálóinak konfigurációs fájljait tartalmazza sites-enabled : A mods-enabled mintájára a sites-enabled szimbolikus linkeket tartalmaz az /etc/apache2/sites-available könyvtárra. Az Apach 2 induláskor beolvassa a MIME-dokumentumtípusokat tartalmazó fájlt is 2, ennek nevét a TypesConfig direktíva adja meg. Ennek alapértelmezett értéke a /etc/mime.types. Apache modulok Az Apache 2 egy moduláris kiszolgáló. Ez azt jelenti, hogy a kiszolgáló magja csak a legalapvetőbb szolgáltatásokat tartalmazza. A bővített szolgáltatások az Apache 2-be tölthető modulokban érhetők el. Ha a kiszolgálót dinamikusan betöltött modulok használatára fordítják, akkor a modulok külön is lefordíthatók és engedélyezhetőek, ellenkező esetben az Apache 2-t újra kell fordítani a modulok hozzáadásához vagy eltávolításához [1]. 2 Ez a fájl tartalmazza a fájlvégződés tartalom típusa összerendeléseket. 18

4 AZ APACHE 2 WEBKISZOLGÁLÓ 8. ábra. A vezető piaci szereplők HTTP szervereinek piaci részesedése típus szerint a Netcraft adatai alapján A telepített modulokat a/etc/apache2/mods-available könyvtár tartalmazza. Új modulok (esetünkben az MySQL hitelesítés modul) a rendszer csomagkezelőjével telepíthetőek: 1 $ sudo apt-get install libapache2-mod-auth-mysql Modulok engedélyezése az a2enmod segédprogram segítségével lehetséges: 1 $ sudo a2enmod auth_mysql 2 $ sudo /etc/init.d/apache2 restart Hasonlóképpen az a2dismod segítségével letilthatók az egyes modulok: 1 $ sudo a2dismod auth_mysql 2 $ sudo /etc/init.d/apache2 restart Virtuális kiszolgálók Az Apache 2 egyik leghatékonyabb szolgáltatása, hogy egyetlen gépen több webkiszolgálót is képes futtatni [1]. Ehhez a VirtualHost szolgáltatást lehet igénybe venni. Alapértelemben az Apache 2-ben egyetlen virtuális kiszolgáló van beállítva. Az alapértelmezett virtuális kiszolgáló adatait a /etc/apache2/sites-available/default fájl tartalmazza. Új virtuális kiszolgáló létrehozásához ezt a fájlt célszerű mintaként felhasználni. 1 $ sudo cp /etc/apache2/sites-available/default 2 /etc/apache2/sites-available/irulabor 19

4.1 Az Apache 2 telepítése 4 AZ APACHE 2 WEBKISZOLGÁLÓ A fájlban található beállítások csak az adott virtuális kiszolgálóra lesznek érvényesek. Ha egy direktíva nincs megadva a virtuális kiszolgálóra, akkor a globális, rendszerszintű (alapértelmezett) beállítás kerül felhasználásra. A DocumentRoot direktíva megadja, hogy az Apache 2 hol keresse a webhelyet felépítő fájlokat. A ServerName (elhagyható) direktíva megadja, hogy a webhely mely FQDN-re válaszoljon. Az alapértelmezett virtuális kiszolgálóhoz nincs megadva a ServerName direktíva, így minden kérésre válaszol, amely nem illeszkedik egy másik virtuális kiszolgálón beállított ServerName direktívára. A következő beállítás hatására például a webhely minden.irulabor.vmware végű tartománykérésre válaszolni fog. 1 ServerName irulabor.vmware 2 ServerAlias *.irulabor.vmware Az /etc/apache2/sites-available könyvtárat nem dolgozza fel az Apache 2. Az /etc/apache2/sites-enabled alatti szimbolikus linkek mutatnak az elérhető oldalakra. Új virtuális hosztot az a2ensite segédprogram használatával lehet engedélyezni: 1 $ sudo a2ensite irulabor 2 $ sudo /etc/init.d/apache2 restart Hasonlóképpen az a2dissite segédprogrammal tiltható le egy webhely: 1 $ sudo a2dissite irulabor 2 $ sudo /etc/init.d/apache2 restart Az Apache 2 telepítése Telepítse az apache2 csomagot a beépített csomagkezelőn ke- 4.1. feladat: resztül! 1 $ apt-cache search apache2 2 $ apt-get install apache2 4.2. feladat: Ellenőrizze, hogy a webkiszolgáló beállítása lehetővé teszi-e a 80- as porton történő hallgatózást. Melyik fájl tartalmazza ezt a beállítást? Milyen paranccsal tudja ezt ellenőrizni böngésző nélkül? 20

4.2 Az Apache biztonsági beállításai 4 AZ APACHE 2 WEBKISZOLGÁLÓ 4.3. feladat: Az Apache 2 dokumentációja és az alap sablon alapján állítson be egy virtuális kiszolgálót, mely az irulabor.vmware domén névre töltődik be. A kiszolgáló által visszaküldött html oldalak kódja megtalálható és letölthető a https://github.com/ng201/iru címen. Ne feledje el aktiválni az elkészült konfigurációt! Tipp: Az /etc/hosts fájlban készítsen el egy bejegyzést, hogy a virtuális gép ismerje a irulabor.vmware nevet. Az Apache biztonsági beállításai Uff, Nagyfőnök! Béla volnék, avagy az apacs autentikáció A legegyszerűbb, fájl alapú autentikáció engedélyezéséhez a következő sorokkal kell kiegészíteni a virtuális kiszolgáló beállítását: 1 AuthType Basic 2 AuthName "Vedett oldal" 3 AuthUserFile /etc/apache2/conf.d/.htpasswd 4 Require valid-user ahol AuthType az autentikáció típusát, AuthName a hely egy opcionális nevét, a felhasználók neveit és jelszavait tartalmazó fájl elérési útvonalát pedig a AuthUserFile direktíva adja meg. A Require sorban pedig azt adtuk meg, hogy csak a fájlban szereplő felhasználók jelentkezhetnek be. Lássunk egy életből ellesett példát: 1 <Directory /var/www/irulabor/vedett> 2 Options Indexes FollowSymLinks MultiViews 3 AllowOverride None 4 Order allow,deny 5 allow from all 6 AuthType Basic 7 AuthName "Vedett oldal fajl alapu autentikacioval" 8 AuthUserFile /etc/apache2/conf.d/.htpasswd 9 Require valid-user 10 </Directory> A htpasswd fájlt (/etc/apache2/conf.d/.htpasswd a fenti mintapéldában) a htpasswd program segítségével lehet létrehozni és módosítani. Ezt a programot célszerű használni akkor is, amikor egy jelszavat szeretnénk lecserélni. Egy új bejegyzés a következőképp helyezhető el a fájlban: 1 $ htpasswd /etc/apache2/conf.d/.htpasswd ujfelhasznalo 2 New password: 3 Re-type new password: A fenti utasítás hatására a következő bejegyzés kerül a htpasswd fájlba: ujfelhasznalo:po9fhxmkqjcry Végezetül felhasználó törlése a következő sor bemásolásával lehetséges: 21

4.3 A.htaccess 4 AZ APACHE 2 WEBKISZOLGÁLÓ 1 $ htpasswd -D.htpasswd ujfelhasznalo 4.4. feladat: A fizikai gépen (tehát nem a virtuális linuxon!) töltse be a böngészőben a http://irulabor.vmware/vedett címet. Mint láthatja, a vedett mappában található fájlok jelenleg elérhetőek a fizikai gépről is. A feladat az, hogy a vedett mappa tartalma csak a virtuális gépről legyen elérhető a webszerverbe épített IP korlátozás segítségével. 4.5. feladat: A feladat az, hogy a védett mappa tartalma csak felhasználónév és jelszó segítségével legyen elérhető a webszerverbe épített korlátozás segítségével. A felhasználókat és a hozzájuk tartozó jelszavakat egy külön fájl tartalmazza (/etc/apache2/conf.d/.htpasswd). A felhasználók között, természetesen, legyen ott mekkelek, akinek legyen a jelszava az Ön NEPTUN kódja! 4.6. feladat: A feladat az, hogy a nagyonvedett mappa tartalma csak felhasználónév és jelszó segítségével legyen elérhető a webszerverbe épített korlátozás segítségével. A felhasználók a rendszer beépített felhasználói. Kíséreljen meg belépni a fenti címen. Tipp: mod_authnz_external, pwauth 4.7. feladat (opcionális): A feladat az, hogy a hipervedett mappa tartalma csak felhasználónév és jelszó segítségével legyen elérhető a webszerverbe épített korlátozás segítségével. A felhasználókat és a hozzájuk tartozó jelszavakat egy LDAP címtár tartalmazza, amely a virtuális gépen fut (azaz a 127.0.0.1-es IP címen érhető el). Csak a people ou tagjai számára kívánunk hozzáférést biztosítani, ennek megfelelően konfigurálja fel az Apache-ot. Tipp: Az alapértelmezett Apache 2 konfigurációban a szükséges modul nincs engedélyezve. A feladat megoldása előtt engedélyezze a modult! A.htaccess A.htaccess (hypertext access) fájl egy könyvtár szintű konfigurációs fájl, amely a webszerver decentralizált menedzsmentjét teszi lehetővé. A webes tartalmak között kerül elhelyezésre, és az adott könyvtár meglátogatásakor lehetővé teszi a szerver némely beállításának felülbírálását. Engedélyezéséhez a virtuális kiszolgáló számára be kell kapcsolni az AllowOverride funkciót. A.htaccess tartalmának módosításával a következő feladatok oldhatók meg: egyéni hibalapok, jelszavas védelem, SSI engedélyezése.htaccess-en keresztül, 22

4.3 A.htaccess 4 AZ APACHE 2 WEBKISZOLGÁLÓ látogatók tiltása IP alapján, alapértelmezett fájl megváltoztatása (pl. index.html-ről indulolap.php), átirányítások,.htaccess tartalom megtekintésének tiltása, MIME típusok hozzáadása, fájlok direkt linkelésének (más honlapokra) tiltása, könyvtárlistázás tiltása, stb. Lássunk két egyszerű példát! Minden szerveren van egy olyan beállítás, mely azt határozza meg, hogy egy könyvtár nevét beírva mely fájlok jelenítődjenek meg a böngészőben. Ez általában az index.html vagy index.htm, index.php szokott lenni, de tetszés szerint módosítható. Ehhez mindössze a.htaccess fájlt kell módosítani: 1 DirectoryIndex fajlneve.html Gyakran előfordul, hogy a honlap (vagy egy része) módosul, új helyre költözik. Az átirányítást többféleképpen is meg lehet oldani. Az egyik lehetőség a.htaccess: 1 Redirect /regikonyvtar/ http://www.honlapodcime.hu/ujkonyvtar/ 4.8. feladat: A weboldal tartalmaz egy nyilvanos elnevezésű mappát is, benne egy.htaccess fájllal. Mire alkalmas ez a fájl? 4.9. feladat: Az alapértelmezett webkiszolgáló konfigurációban ennek a fájlnak a használata tiltva van. Milyen konfigurációs direktívával tudjuk mégis engedélyezni, és ezt hol kell megadni? A kérdés a nyilvanos mappára vonatkozik, csak ott akarjuk engedélyezni a.htaccess használatát. Tipp: AllowOverride 4.10. feladat: A nyilvanos mappára szeretné bekapcsolni a webszerver automatikus listázó funkcióját. Mit és milyen formátumban kell ehhez beírni a.htaccess fájlba? Tipp: +Indexes 23

5 LINUX HÉJPROGRAMOZÁS 5 Linux héjprogramozás A Linux héjprogram (shell script) nem más mint (héj)parancsok sorozata, amelyeket az újrafelhasználás jegyében egy fájlba gyűjtünk. A héjprogramok előnye a klasszikus programozási nyelvekkel szemben az, hogy sokkal magasabb, elvontabb szintem lehet bennük dolgozni, és megkönnyítik a fájlokkal és könyvtárakkal való manipulációt. Sajnos a futási időben történő interpreter-használat miatt a sebességük elmaradhat a klasszikus nyelvekéhez képest, de a gyorsabb fejlesztési ciklus oltárán ez gyakran feláldozható [3]. Kezdjük egy egyszerű programmal. Nézzük meg, hogy hány felhasználó van aktuálisan bejelentkezve egy többfelhasználós Linux szerverre. Ebben a feladatban a who parancs lehet a segítségre: 1 $ who 2 frakk pts/2 Dec 31 16:39 (magyarvizsla.pelda.hu) 3 lukrecia pts/3 Dec 27 11:07 (cicavizio.pelda.hu) 4 szerenke dtlocal Dec 27 17:55 (macska.pelda.hu) 5 karolybacsi pts/5 Dec 27 17:55 (:32) 6 irmaneni pts/14 Jan 2 06:42 Egy nagy többfelhasználós rendszerben a lista hosszúra nyúlhat, így kiváló lehetőséget nyújt a feladatok automatizálására. A bejelentkezett felhasználók megszámolásához módosítsunk egy picit a programon, használjuk fel a wc programot, amely megszámolja a bemenetén a sorokat, szavakat és karaktereket. Az esetünkben a program -l kapcsolóval történő meghívása a nyerő: 1 $ who wc -l 2 5 A következő lépés a az előző utasítás páros egy paranccsá tétele. Ehhez az előző programot egy fájlba kell elhelyezni, majd a fájlt futtathatóvá kell tenni: 1 $ cat > nusers 2 who wc -l 3 ^D 4 $ chmod +x nusers 5 $./nusers 6 5 A #! az első sor Amikor az előző programot futtatjuk, akkor a Linux rendszermag egy új folyamatot indít, ezen folyamaton belül próbálja meg futtatni a programot. A rendszermag hagyományos (lefordított) programok esetében tudja, hogyan lehet ezt megtenni, de a héjprogramok esetében ez nincs így. Ilyenkor a hívó oldal feltételezi, hogy a program egy héjprogram, és elindítja a /bin/sh értelmezőt, hogy futtassa le az héjprogramot (a mechanizmust a 9. ábra szemlélteti). 24

5.1 A bash 5 LINUX HÉJPROGRAMOZÁS 9. ábra. Héjprogramok futtatása [3] Ez a mechanizmus jól működik, amíg csak egy shell van telepítve a rendszerben. Ellenkező esetben a héjprogram első sora nyújt(hat) segítséget: ha az első sora a #! jelekkel kezdődik, amelyeket szorosan követ az értelmező neve, akkor azzal az értelmezővel futtatja le a héjprogramot: 1 #!/bin/bash 2 # 3 4 who wc -l A bash A bash egy Unix/Linux rendszerhéj/shell. A futtatható fájl neve bash egy játékos mozaikszó, mely a Bourne again shell, illetve a born again shell kifejezéseket rövidíti. Változók In medias res. 1 $ envaltozom=frakk_a_macskak_reme 2 $ echo $envaltozom 3 Frakk_a_macskak_reme Ahogy az előző példából is látszik, változónak értéket úgy adunk, hogy leírjuk a nevét, amit közvetlenül az egyenlőségjel, majd pedig az értéke követ. Ha az értékben üres karakterek is vannak, akkor aposztrófot kell használni az érték elején és végén: 1 kutya=frakk macska1=szerenke macska2=lulkrecia 2 # ^^ ertekadas tobb valtozonak egy sorban 3 bacsi="karoly bacsi" 4 # ^^ ureskarakterek eseten aposztrofot kell hasznalni Változók értékeinek a konkatenációja is gyerekjáték: 1 allatok="$kutya, $macska1, $macska2" További példákat változók értékadására az alábbi héjprogramban láthatunk: 25