27. fejezet: A Linux szerverként
Befejezve: 2003.
27.1.) Általános leírás
2004-es állapot szerinti leírás!!!
A Windows-rendszerekben általában külön verzió tartalmazza a szerver, valamint a kliens-verziókat.
A szerver-verziókat ráadásul csak az NT-alapú rendszereken lehet létrehozni a Microsoft®-érában.
Például: Windows NT 4.0 Server + WorkStation
Windows 2000 Server + Munkaállomás;
Windows XP Server + Munkaállomás (Home/Professional)
Ezt a rendszert alapvetően felforgatta a Linux. Itt ugyanis minden verzióban van egy igen jól
paraméterezhető, és egyszerűen használható szerver. Ráadásul a Linux lényegéből kifolyólag
mindezt ingyen! Így ugye érthető, hogy a jelenlegi internetes szerverek legalább 60 %-a Linux-alapú.
A Linuxban egyes szolgáltatásokat démonok valósítanak meg. (daemon)
Ilyen például a nyomtató-démon (lpd), a parancsokat időzítő démon (crond),
az internet-szolgáltatást nyújtó démon (xinetd), ...
Magát a webszervert a httpd valósítja meg. A webszerver egy egyszerű
könyvtárként jelenik meg: /home/httpd/html. Ettől persze lehetnek eltérések is,
de ez a szokásos beállítás. Az itt elhelyezett
oldalak és könyvtárak láthatóak lesznek a weben csatlakozók számára. De hogyan?
Minden Linux-os felhasználó, csak és kizárólag akkor kaphat hozzáférést egy fájlhoz vagy
egy könyvtárhoz, ha előbb belép a rendszerbe. Ezt a géphez csatlakozva automatikusan
megteszi a rendszer. Minden, kívülről jött felhasználó - helyes paraméterezés estén - megkapja
az Others csoport jogát valameilyen felhasználóként (pl.: wwwuser).
Ezzel a külső felhasználót már azonosítja a rendszer, mint sajátját.
Természetesen nem szabad a felhasználót csak egyszeres belépési lehetőséggel korlátozni,
mivel ekkor a szerver nem tudna kiszolgálni egyszerre több interneten keresztül érkező kérést.
Az Others felhasználónak ezután olvasási jogok kell adni a webszerver könyvtárára
(Fenti példában: /home/httpd/html). Ha a szerveren nem egyszerűen HTML-fájlok vannak, hanem
speciális futtathatóak is, mint például a CGI vagy a PHP, akkor ezen fájlokra írási jogot
is kell adni.
27.2.) Szerver-oldali jogok
2004-es állapot szerinti leírás!!!
Ha a szerveren stabil, állandó tartalom van, akkor ennyivel meg is elégedhetünk.
De ugye a realitás nem ezt mutatja?! Egy webszervernek sokszor kell változtatni a tartalmát.
Ha csak a rendszergazda írhatja felül az állományokat, akkor kisebb a probléma, mert
a root-joggal rendelkező felhasználó úgyis mindent megcsinálhat.
De mi van, ha egy szerveren néhány nem-root jogú felhasználó is tárol és fejleszt weblapokat?
Ekkor nyilvánvaló, hogy nekik nem kellene megadni a root-hozzáférést, mert ebből biztonsági gondok
adódhatnak. A megoldás többféle is lehet.
a.) A legegyszerűbb, ha felhasználónként külön könyvtárban
vannak a weblapok, melyek csak olvashatóak.
Ilyenkor minden egyes felhasználónak a saját könyvtárára kell teljes jogot adni.
(Own: rwx; Group: ---; Others: r--). Az Others csoportnak adott olvasási jog biztosítja, hogy az
internetes csatlakozó felhasználók olvasni tudják a könyvtár tartalmát. A User ID, Group ID és a
sticky bit-tel nem kell törődni, mert minden egyes fájlnak az azt létrehozó adott felhasználó
lesz a tulajdonosa. A jogok állandóak.
Az egész könyvtárra nézve a jogok: Own: rwx, Group: ---; Others: r--. Ezzel a megoldással
a tulajdonos létre tud hozni a területén belül önálló alkönyvtárat, melyet az egyéb
felhasználók tudnak olvasni. Nem kell engedélyezni, hogy a felhasználók változtatgassák a jogaikat.
Feltöltéshez be tudnak lépni a saját néven (és jelszóval), majd egy FTP-felületen
át tudják adni az új adatokat. Arra érdemes vigyázni, hogy a felhasználó saját könyvtárában
nyíljon meg a webszerver FTP-felülete.
b.) A felhasználók külön könyvtárakban tárolják lapjaikat, melyekben vannak futtathatóak is.
Ez már egy fokkal bonyolultabb, mint az előző. Itt is érvényesek az előző jog-beállítások,
de itt-ott változtatni kell. A futtatható fájlok esetén a helyes Others jogok: r-x.
Ezzel viszont vigyázni kell, mert időnként gondot is okozhatnak. Például, ha direkt megpróbálnak a
többi felhasználó könyvtárába belenyúlni, vagy kéretlen levelek ezreivel árasztják el
a felhasználókat. Sok webszervernél dikerkt figyelik, hogy helyes-e a futtatható oldalak beállítása
és ha egyik felhasználó futtatható programja bele akar írni egy másik felhasználó könyvtárába,
akkor a rendszer automatikusan törli a szabálytalankodó programot.
Az elárasztásos levélküldés ellen a legjobb módszer talán az, hogy a rendszer figyeli
az egy adott idő alatt kiküldött levelek számát és bizonyos limit felett figyelmezteti
rendszergazdát, hogy itt egy helytelen program munkálkodhat.Ennek a shellnek bonyolult az
elkészítése, így sok szolgáltató a webes alapú levelezést egyszerűen letiltja.
Mivel itt a jogok különbözőek lehetnek, ezért az egyes felhasználóknak
lehetőséget kell adni a saját alkönyvtáruk jogainak változtatására. Feltöltés: az előzőhöz
hasonlóan FTP-n keresztül, de az automatikusan adott jogokat érdemes itt is az alapvetőekre
korlátozni. Ezt a komolyabb FTP-programok is megengedik.
c.) Vendégkönyv: ezt minden ellenkező vélemény ellenére nem túl nehéz megírni.
A jogok beállítására azért vigyázni kell. A saját- és a csoportjogok egyértelműek:
Own: rwx; Group: ---. A külső felhasználónak olvasni kell, de írni is
(az új bejegyzéseket), ezen kívül futtatni kell a vendégkönyvet admninisztráló programot.
Látszólag a jogok: Others: rwx. Helyette azért eggyel biztonságosabb megoldást javaslok.
Minden egyes bejegyzést érdemes egy-egy külön fájlba tenni. Ezekre csak olvasási jog kell.
(Others: r--). A futtató programra kell olvasási és futtatási jog (Others: r-x).
Ez általában 1-2 fájl. Ellenben az egész könyvtárra kell írási jog,
mely segítségével a következő bejegyzés is
bekerülhet. Célszerű az összes többi fájlra minden más jogot letiltani! (Others: ---)
Ha nincs túl gyakran bejegyzés a vendégkönyvbe, akkor célszerű minden egyes bejegyzés
után a küldő részére egy köszönő E-mailt küldetni (automatikusan), valamint egy figyelmeztető
E-mailt a vendégkönyv gazdájának. Ezzel biztosítható, hogy a nem odaillő bejegyzések
rendszeresen ki legyenek törölve. Feltöltés itt értelemszerűen nincsen, de a könnyebb
adminisztrálás végett érdemes megengedni!
d.) A felhasználók azonos könyvtárat használnak.
Ez az egyik legtöbb odafigyelést igénylő beállítás. De egy kicsit trükkel meg lehet oldani,
hogy egy könyvtárba csak az oda tartozó felhasználók írhassanak. Az azonos körba tartozó
felhasználókból létre kell hozni egy csoportot, melyre már bátran lehet bízni a könyvtár jogait.
(Group: rwx). Így az is megoldott, hogy ha egy felhasználó másol is tagja a csoportnak, akkor
abba a könyvtárba is kaphasson jogokat, de egyéb helyekre nem! Feltöltés: az előzőhöz
hasonlóan FTP-n keresztül, de az automatikusan adott jogokat érdemes itt is az alapvetőekre
korlátozni.
27.3.) Fontosabb internetes fájltípusok
HTML - HyperText Markup Language = az alapnyelv, mely nagyjából azonosan jelenik
meg minden környezetben. Nem kell futtatási jog. Minden böngésző ismeri.
HTM - Az előző rövidebb verziója.
SHTML - Secure HTML = A HTML nyelv biztondégi eljárással megfejelt verziója.
DHTML - Dynamic HTML = A néha túlságoran statikus HTML nyelv mozgatásokat is
lehetővé tevő verziója.
XML - eXtended(?) Markup Language = az előző továbbfejlesztett verziója.
A legtöbb böngésző ismeri.
CGI - Comman Gateway Interface = Szerver-oldali programnyelv.
Nem minden webhely engedélyezi a futtatását. Az Apache ismeri!
PHP - Personal Home Page = Szerver-oldali programnyelv, bár nem annak indult.
Nem minden webhely engedélyezi a futtatását. Az Apache ismeri!
ASP - Advanced Side Programming (?) = Szerver-oldali programozási nyelv.
Nem minden webhely engedélyezi a futtatását.
CSS - Cascade Style Sheet = A webhely tulajdonságait rögzítendő fájl.
GIF - Graphics Interface Format = az egyik jól tömörített kép, illetve animációs
formátum. Minden böngésző ismeri.
JPG - Joint Picture Graphic = az egyik legtömörebb kép-formátum. Minden böngésző ismeri.
JPEG - Az előző másik rövidítése.
PNG - Portable Network Graphics = Egy újabban népszerűvé vált grafikus formátum.
BMP - BitMaP = Pixel-alapú, nem tömörített képformátum. Az MS-Windows-alkalmazások kedvence.
WAV - Az egyik legelterjedtebb hangformátum. Csaknem minden böngésző ismeri.
MP3 - Az egyik legelterjedtebb, igen tömör hangformátum. Sok böngésző ismeri.
AVI - AudioVIsual = Az egyik elterjedt film-formátum. Sok böngésző ismeri.
MPEG - Motion Pictures Expert Group = Az egyik legelterjedtebb film-formátum.
Minden böngésző ismeri.
MPG - Az előző másik rövidítése.
JAVA - Kliens-oldali programozási nyelv. Csaknem minden webhely engedélyezi.
Minden komolyabb böngésző ismeri.
JavaScript - Az előző kistestvére.
VBSCRIPT - Visual Basic Script = Kliens oldali programozási nyelv. Csaknem minden
webhely engedélyezi. Csaknem minden böngésző ismeri.
Persze nem csak ezek a fájltípusok léteznek, hanem sokkal több is, de ezek a legfontosabbak.
27.4.) Beállítási ötletek internetre - tömören
2004-es állapot szerinti leírás!!!
A httpd-t legegyszerűbben automatikusan lehet elindítani.
További Apache ötletek és részletek: 28.6. fejezet!
Több Linuxban is
el kell helyezni az inicializáló scriptet (httpd.init) a /etc/rc.d/init.d könyvtárba.
Az ftp-szervert az inetd felügyeli. Inicializáló scriptje: /etc/inetd.conf
A proxy-servert Linux alatt squid-nek (tintahal) hívják. Automatikusan beállít szinte mindent.
Gyakorlatban a proxy-serverek a belső hálózatra kiosztott és a szerver felügyelete alá tartozó gépek
számára időben kiszolgáljon és forgalommentes időszakokban letöltsön weboldalakat. Szintén ezek a
szerverek fordítják át a belső (a LAN-on belüli) IP-címeket külsőkké.
További Squid ötletek és részletek: 28.2. fejezet!
Eme szolgáltatásokat kézzel is el lehet indítani, egy lehetséges ...
... elindítás: service httpd start
... leállítás: service httpd stop
... újraindítása: service httpd restart
... státusz ellenőrzése: service httpd status
A fentiekhez hasonlóan lehet szabályozni az inetd démont is.
Az inetd portja alapértelmezésben: 23-as. Konfigurálása: /etc/inetd.conf
A Linux-szerverek szolgáltatási portcíme: 80-as, illetve a 8080-as.
A web-szerver gyökere (általában): /etc/httpd/html
Az FTP-szerveré: 20-as, illetve 21-es. Az FTP-szerver gyökere (általában): /etc/ftp/bin
A Proxy-szerver portja alapértelmezésben: 3128-as.
Konfigurációs fájlok (a legtöbb rendszeren):/etc/hosts Gépek nevét összeköti az IP-címükkel. A gép először itt keresi a kért címet.
/etc/networks Domain-neveket köti össze a hálózati címekkel.
Ezen gépekkel vagyunk jelenleg összekötve.
/etc/hostname A rendszer domain-nevét tartalmazza. Ezen gép előtt ülünk.
Alaphelyzet: localhost.localdomain
/etc/resolv.conf Az elérhető nameserverek listáját tartalmazza.
Ha sehol sincs meg a kért cím, akkor a gép ezekhez fordul.
/etc/host.conf A DNS-t beállító egyik fontos fájl.
/etc/resolv.conf A DNS-t beállító másik fontos fájl.
/etc/hosts.allow Az ftpd által megengedett DNS-ek felsorolása (ha van ilyen)
/etc/hosts.deny Az ftpd által tiltott DNS-ek felsorolása (ha van ilyen)
/etc/squid.conf A squid beállításai.
Hálózati konfiguráló programok: ifconfig, netconfig, netcfg, route, ...
A beállítások próbálgatására: ping, netstat, ...
Saját nameserver beállításához: named démon.
Betárcsázó program: pppd
Adminisztrációs feladatok megvalósításához: usercfg, netcfg, fstool, timetool, timeconfig, date, ...
Feladatok ütemezése: crontab. Lásd: 27.6.c. pont!
Rendszer (és a processzek) bizonyos fokú újraindítása: init x, ahol x=(0,1,2,3,4,5,6)
init 0 = a rendszer teljes leállítása. Más paranccsal: halt, vagy shutdown
Lásd: 27.6.d. pont!
init 1 = Egy-felhasználós mód
init 2 = Többfelhasználós mód, hlózati szolgáltatások nélkül
init 3 = Teljes többfelhasználós mód
init 4 = Nem használt
init 5 = X11
init 6 = a rendszer teljes újraindítása.
(Az erre utaló fájl: /etc/inittab)
(Kérem, ne felejtse el, hogy a SHIFT+felfelé nyíl felvisz a szöveges képernyő, illetve
az X-console már eltűnt helyeire is.)
- Óra összehangolása: rdate -s kiszolgálóneve
Az "s" kapcsoló értelme: set (beállítás).
Ha a kapcsoló "p", akkor csak kiírja (print).
Részletesebb beállítása: /etc/inetd.conf
Magyarországon javasolt időkiszolgáló: time.kfki.hu
- linuxconf - Setup segédbeállítás X felületen. Beszerzése:
www.solucorp.qc.ca/linuxconf
Javasolt környezet: Red Hat Gnome, de máshol is mehet!
- netconf - Hálózati segédbeállítás X felületen. Setup file: /etc/conf.linuxconf
- userconf - Felhasználók beállításai X felületen. Setup file: /etc/conf.linuxconf
- webmin - X alapú komplex felügyeleti eszköz. Fontos feltétel: Perl futtatás szükséges, ám Apache NEM KELL hozzá!
Webhely: www.webmin.com
- További hasznos ötletek: gnomecc - Gnome felügyelet;
kcontrol - KDE teljes felügyelete.
kuser - KDE alatti felügyelet a felhasználókhoz.
ksysv - KDE alatti futási szint-szerkesztő. Óvatosan!!!
Ezen tudással és némi angoltudással felvértezve a Linux-ot már be lehet állítani szerverként.
Persze igen sokat segithetnek a megfelelő webhelyek, illetve a Linux-os fórumok felkeresése.
Egy valamit azonban érdemes megjegyezni: éles, komoly tudású webszervert első menetben
NE akarjunk építeni!
Érdemes egy kicsi, egyszerű, házi használatú szerveren próbálkozni elsőként, majd tovább
szépen lassacskán fejlődni tovább!
27.5.) Használt kifejezések rövid szótára
TCP/IP címek: Az interneten jelenleg használt címzési típus.
Nem a leggyorsabb, nem a legbiztonságosabb, de mégis ez lett a legelfogadottabb.
Alapja (jelenleg) 4 db byte. Minden byte értéke 0 és 255 között lehet. Például:195.199.100.65
Ezek döntő részét az internet-szolgáltató adja, így semmilyen beleszólásunk nincsen.
A világon nincsen két olyan számítógép, melynek azonos lenne a publikus TCP/IP címe.
Viszont így könnyedén elfogyna a címtartomány. A következő, 6 bájtos szabvány
bevezetéséig meg kell elégedni a privát címtartomány adta lehetőségekkel.
Ezek a tartományok például a következők:
10.0.0.0 - 10.255.255.255
192.168.0.0 - 192.168.255.255
Ezeket szabadon oszthatjuk el a saját hálózatunkon belül, mivel semmiképpen nem kerülhetnek
ki a világhálóra!
Broadcast (üzenetszóró) cím:
A Broadcast cím lehetővé teszi, hogy a hálózatunk összes gépére
egy üzenetet küldjünk ki, vagy megcímezzük ezeket. Ha például a saját cím: 192.168.1.204, akkor a
broadcast cím: 192.168.1.255, tehát az utolsó bájtot át kell írni 255-re.
Gateway (átjáró):
Sok hely hálózatban vannak olyan speciális címek, melyek a helyi
hálózatot csatolják rá a világhálóra, így megteremtik az összeköttetést. Ez a gateway cím.
Például a lokális hálón lévő gépek esetén a gateway lehet a legközelebbi felcsatlakozási
hálózati kártya címe is, mely többnyire 1-végű privát-cím. Érdemes arra is figyelni,
hogy a két kártya címének első három bájtja azonos legyen. Ám publikus címek esetén
mindkét feltétel alól lehet kivétel...
NameServer (névszerver): Más néven: DNS (=Domain Name Server).
A computerek számokat értenek meg (TCP/IP címeket), míg a felhasználóknak
sokkal kényelmesebben megjegyezhetőek a nevek.
Számra példa: 195.199.100.65
Névre példa: http://www.jaky.hu/.
A kettő közti oda-vissza fordítást a névszerverek valósítják meg. Magukra valamit is adó
webszerveren létezik ilyen névszerver, mely az esetek többségében kérésre feltelepszik
és automatikusan működésbe lép és természetesen semmilyen adminisztrációt nem igényel.
Netmask (hálózati maszk):
Ezzel az eszközzel megkapjuk azon hálózat címét, melybe a gépünk tartozik.
A gyakorlatban ez egy sablon - semmi más! Tipikus esetben privát hálózatoknál a gépek címe pl.:
192.168.87.101, míg a netmaszk: 255.255.255.0
Így a rendszer számára az első három bájt
azonosítja a(z al)hálózatot, míg az utolsó a gépet. Publikus címek esetén a gép címe pl.:
195.199.100.65, míg a netmask: 255.255.255.240.
Így az utolsó bájtot le kell bontani bitekre, hogy lássuk a lényeget.
Szóval: 240 = $F0 = b11110000.
Az utolsó bájtból az első négy bit a hálózatot azonosítja, míg a maradék nég bit a gépeket.
Ebből is látszik, hogy a gépek TCP/IP azonosítója az 1-es értékű biteken egyforma, míg a
0-ás értékű biteken változhat.
Proxy server:
A legtöbb helyi hálózaton létező szolgáltatás, melyet viszonylag egyszerű
feltelepíteni, és pl. Linux-rendszereknél elég egyszerű használni. Lényege: a gyakran
letöltött, statikus tartalmú webhelyekért nem megy ki a világhálóra, hanem az igen gyors
elérésű, közel lévő proxy-ból veszi le a tartalmat. Előnye: nagyságrenddel gyorsul a
web-elérés. Hátránya: nem mindig a legfrissebb tartalom látható a böngészőben.
Átlépés a proxy-n: a böngészőben meg kell nyomni az "Újratöltés" (Reload) gombot, így a
proxy-t kötelezzük egy webes frissítés megnézésére. Ha történt frissítés (más a lap
legalább egy elemének dátuma), akkor leszedi a megváltozott elemet.
27.5.a.) Domain-ek
27.6.) Rendszer és teljesitménye
27.6.a.) Rendszerinformációk
2004-es állapot szerinti leírás!!!
Minden szervernél igen fontos, hogy 100% biztonsággal működjön. Ez a hirtelen leállásra
oly' érzékeny Linuxnál sincs másként. Ezt egy jobb szünetmentes tápegységgel,
UPS-szel megoldhatjuk. Ám nem csak ezen múlik a megbízhatóság. Nagyon jó tudni, hogy mi
van a gép belsejében. Erre szolgál a uname parancs, amely rendszerinformációkat ír ki.
Fontosabb paraméterei: uname -r : kiírja a kernel verziószámát. (release)
uname -m : kiírja a gép hardvertípusát. (machine)
uname -n : kiírja a gép hálózati nevét. (nodename)
uname -s : kiírja az operációs rendszer nevét. :-) (system)
uname -v : kiírja az alapveto telepítési információkat. (version)
uname -a : kiírja a fenti összes információt. Kicsit kuszán. (all)
uname --help : Segítséget ír ki az uname-rol. (help)
27.6.b.) Vészhelyzeti indítás floppiról
Ugye időnként előfordulhat a legrosszabb, azaz a váratlan, teljes összeomlás.
Tény, hogy ez a Linuxnak nem jellemzője, de pl. egy rosszul fordított kernelnél ez sajnos megeshet,
ha a felhasználó gyakorlatlan. Ilyenkor nagy szolgálatot tehet egy boot-lemez.
Készítése: mkbootdisk kernel_version
Emlékeztetőül a kernel verziószámát az uname -r parancs írja ki.
27.6.c.) Időzítő és társai
- crond - Az időzítő lehetővé teszi, hogy megadott időpontokban hajtson végre
a rendszer bizonyos utasításokat. A módszer igen jó és nagyon könnyedén adminisztrálható.
Fájl: /etc/crond,
esetleg: /etc/crontab
A fájl nagy részében minden egyes sor 1-1 időzített esemény.
A cron képes exportálni az eseményeket, például egy e-mailbe!
Leíró fájlok, tiltások és engedélyezések: /etc/cron.allow, /etc/cron.deny
Az események szabályozása egyszerű! #perc óra nap hónap hétNapja felhasználó /útvonal/fájl_neve
45 02 * * * root /etc/sajat/tesztesemeny.sh
Ez a fenti tesztesemény minden év minden hónapjának minden napján
fut 02 óra 45 perckor, természetesen root-felhasználói joggal.
Az egyes bejegyzések között elég 1 db SPACE-t hagyni.
Az egyes mezőkben az időzítők vesszővel elválaszthatóak.
Pl: 0,15,30,45 a legelső mezőben azt jelenti, hogy negyedóránként fut le valami.
Másik minta - minden hétköznap este 10-kor figyelmezteti Joe-t:
0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
- batch Abban az esetben, ha a rendszer teljesítményét nem szeretnénk túlterhelni, akkor célszerű
az üresjárati időket kihasználni. Erre szolgál a batch parancs.
- at - Parancs egyszeri végrehajtása.
Például: at 6 pm Monday -f /útvonal/futtatando_fileok
Leíró fájlok, tiltások és engedélyezések: /etc/at.allow, /etc/at.deny
A -f kapcsoló lényege: a feladatokat egy fájlból olvassa, nem a szokásos bemenetről.
- atq - A sorban álló at parancsok lekérdezése.
Felsorolja a felhasználó függőben lévő feladatait, feltéve, ha a felhasználó nem a root.
Ebben az esetben minden felhasználó sorban álló feladatait kilistázza.
- atrm szám - Az at-tel kiadott parancs visszavonása. Előtte érdemes kilistázni.
- expect - Felhasználói beavatkozást igénylő munkamenetek parancsba foglalása.
Honlapja: http://expect.nist.gov/
27.6.d.) Rendszeradminisztrációs parancsok
2004-es állapot szerinti leírás!!!
- shutdown, halt, illetve poweroff - a rendszer leállítása
- reboot, illetve restart - a rendszer újraindítása
- date - kiírja vagy beállítja a rendszerdátumot és -időt
- who - megmutatja, ki van bejelentkezve. Fejléccel: who -H
- w - Megmutatja, hogy ki van belépve és mit csinál; valamint a rendszer
átlagos terhelését az elmúlt időszakokban. Gyakorlatilag kicsit többet csinál, mint a who.
- whoami - az aktuális felhasználói azonosítót írja ki, azaz 1 szót.
- tty - kiírja a standard bemenethez kapcsolódó terminál nevét.
Gyakorlatilag azonosítja a munkaállomást.
- echo - kiír egy szövegsort.
- finger - Felhasználói információk megjelenítése. Meglepően sok adatot tud!
- last - a legutóbbi belépések listázása terminál vagy felhasználó alapján.
- ls/dir/vdir - Könyvtár tartalmának listázása. (List directory contents)
Fájl elrejtése sima "ls" elől: a fájlnév 1. karaktere legyen: . (pont!)
Minden fájl megjelenítése: ls -a
- find - fájlokat keres egy könyvtárstruktúrában.
Minta: find -name "*.jpg"
- pwd - Kiírja az aktuális (munka-) könyvtárat. (Print working directory)
- /etc/sysconfig - Rendszerbeállító állomány. Érdemes használni!
- netstat - Hálózati statisztikák és apróságok. Sok igen hasznos információ!
Parancs: /sbin/netstat Csak root-joggal használható!
Biztonsági rések feltérképezésére: netstat -apn
- umask - Jogok lekérdezése. A válasz bináris formában jön meg.
Javaslat: umask -S :Így a válasz szöveges formában lesz meg!
- chmod - fájlok elérési jogainak megváltoztatása (Change File Modes)
- chown - fájlok felhasználói és csoport tulajdonosának megváltoztatása (Change Owner)
- chgrp - Fájlok tulajdonosi csoportjának megváltoztatása (Change Group)
- /etc/conf.modules - Ötletként: Ethernet kártyák konfigurálása!
Parancs: /sbin/ifconfig -a
27.6.e.) Processzek
2004-es állapot szerinti leírás!!!
A processz egy különleges képződmény. Gyakorlatilag minden Linux folyamat egy processz.
Általában egy program/alkalmazás = egy processz képlet érvényes, de vannak eltérések.
Saját kezelésemben lévő webszerveren (Jaky.hu)
például a httpd bizonyos esetekben több tucat példányban is fut.
De most nézzük eme folyamatokat!
- ps - Folyamatok listája/állapota. Pillanatfelvétel! Fontosabb kapcsolók:
a - a többi felhasználó processzeit is kijelzi (all user)
l -hosszú (long) formátum
u - felhasználói (user) formátum: megadja a felhasználó nevét és a kezdés idejét
m - a memóriáról is ad információt; a p -vel együtt a használt lapok (page) számát is megadja.
s -`signal' formátum. Túl széles is lehet!
S -a gyermek (child) CPU-idejét és a "page faults"-okat is megadja
h -nem ír ki fejlécet (header).
r -csak a futó processzeket listázza. Hasznos lehet.
x -a terminálhoz nem csatlakozó processzeket is kijelzi. Célszerű!
Javasolt módszer: ps ax | more - Ez így jól áttekinthető!
- pstree - a processzek fa struktúráját ábrázolja. Igen hasznos lehet! Könnyen áttekinthető.
Itt lehet látni, hogy mindig létezik 1-es számú processz. Ez maga a rendszermag! Csak óvatosan vele,
hiszen ha ezt sikerül leállítani, akkor a rendszer isleáll vele együtt.
Hasonló: ps ax f (forest= erdő)
- top - kiírja a legtöbbet használó processzeket. Folyamatosan frissül!
Pillanatnyi állapot-frissítést a SPACE lenyomásával kérhetünk. Kilépés: q
- free - Miböl mennyi a szabad. Gyors. Sima. Nem interaktív, mint a top.
- vmstat idotertam_sec idotartamok_szama - Rendszerfoglaltsági mutatók
Például vegyünk 2 másodpercenként mintát 5 alkalommal. Parancsa: vmstat 2 5
Válaszul egy nagy rakás számot kapunk. Eleget böngészve megállapítható, hogy a gépet
mikor kell bővíteni, illetve nagyobbra cserélni! A fontosabb oszlopok: us(er): a CPU-idő hány százalékát foglalják le a felhasználói programok
sy(stem): rendszerfeladatok
id(le): várakozással töltött idő
w: lapozóterületre (HDD!) került folyamatok. Az a jó, ha ez az oszlop mindig 0!
free: szabad memória
si(swap in): beolvasott memória
so(swap out): kiírt memória
- ps long_process & - Folyamat indítása a háttérben ( a végén van egy angol ÉS-jel: ALT GR + C)
CTRL+Z - Folyamat felfüggesztése
- jobs - Felfüggesztett folyamatok. - Fontosabb jelzők:
s:sleeping =alszik; t:trace = nyomkövetés; r: running; fut; z:zombie= halott
- fg - foreground - Felfüggesztettek folytatása
- bg - background - Folyamat háttérbe küldése
- kill ID - Folyamat lelövése, ahol az ID a folyamat azonosító száma!
Ismétlésül egy fontos tény:
Az alap-processz: init. Minden más ettől származik. PID: 1. (kötelezően!)
Feladata: az /etc/inittab fájl végigolvasása.
Itt a futási szintek vannak leírva. Például a Suse Linux 8.0 futási szintjei:
runlevel 0: System halt (rendszer-leállítás)
runlevel 1: Single user mode (egy felhasználós mód)
runlevel 2: Local multiuser without remote network, e.g. NFS (helyi többfelhasználós)
runlevel 3: Full multiuser with network (teljes többfelhasználós mód hálózattal)
runlevel 4: Not used (nem használt)
runlevel 5: Full multiuser with network and xdm (mint a 3-as + X felület is)
runlevel 6: System reboot. Do not use this for initdefault! (Rendszer újraindítás. Ezt TILOS használni alapértelmezettként!)
Valamely szint indítása: init x, ahol x a szint száma. ÓVATOSAN!
A szintek indításkori paraméterei és fájljai: /etc/rc.d/rcx.d, ahol x a szint száma.
Szint ellenőrzése általában: /sbin/runlevel - Csak root felhasználói joggal!
- chkconfig - Az indításkori paraméterek ellenőrzése.- Csak root felhasználói joggal!
Fontosabb kapcsolók:
chkconfig processznév - Fut-e az adott szolgáltatás. (Pl.: apache)
chkconfig processznév on - Indítsd be az adott szolgáltatást!
chkconfig processznév off - Állítsd le az adott szolgáltatást!
- Red Hat alatti parancs: ntsysv, míg X alatt: tksysv, míg az egyes szolgáltatásokat
egyszerűbb a service paranccsal adminisztrálni. Minták:
service httpd stop - webszerver-szolgáltatás leállítása
service httpd start - webszerver-szolgáltatás elindítása
service httpd restart - webszerver-szolgáltatás újraindítása
Az elérhető szolgáltatásokról érdemes megnézni a rendszerkonfigurációt, de érdemes keresgélni
a "ps ax"-ben is.
27.6.f.) Processzek és quoták
2004-es állapot szerinti leírás!!!
A kvóta egy hasznos, de nem feltétlenül szükséges rendszer.
A célja, az egyes nagyétvágyú folyamatok, userek, illetve csoportok kordában tartása!
- cd /proc - Futó processzek listája - gyakorlatban egy könyvtár.
Rengeteg jobbnál jobb információ van ebben a virtuális könyvtárban!
Megnézendők: cpuinfo, interrupts, devices, meminfo, partitions, ... - Tapasztalatom szerint
meglepően precíz kiméréseket hajt végre és szinte a legkényesebb alkatrészekről is a
lehető legpontosabb adatokat adja vissza!
Javasolt nézegető: pico
- fsck - File System CkecK = Linux fájlrendszer-ellenőrzése és kijavítása.
Időnként érdemes kiadni.
Csak a root használhatja.
- df - Disk Free = Szabad lemezterület összegzése.
- quota.user, illetve quota.group - Lemezterület-használtság.
- quotacheck -uagv -Lemezterület-ellenőrzés.
- repquota - Foglaltság kiírása. Csak a root használhatja.
- quotaon/quotaoff - Quota ki-bekapcsolása. Csak a root használhatja. Alapértelmezés: off!
- edquota - Quota-rendszer javítása. Csak a root használhatja.
27.7.) Felhasználók és kezelésük
Jelszóállomány - /etc/passwd .Az állományt TILOS javítani!
Szerkezet:
felhasználó:jelszó:UserID:GroupID:Megjegyzés:SajátKönyvtár:Alapértelmezett_héj
Például:
tferi:x:500:100:Ferenc Tamás:/home/tferi:/bin/bash
Kikötések: Felhasználó max. 8 karakter
UserID és Group ID: szám
Root UserID és GroupID kötelezően: 0.
Árnyékjelszó-állomány - /etc/shadow - Biztonsági jelszó-kezeléshez.
Érdemes használni. Csak a root olvashatja. Így a rendszer sokkal védettebb!
pwck - Password Check = Jelszó-ellenőrzés.
Csak a root használhatja. Időnként érdemes kiadni.
Gyakorlatilag megnézi a /etc/passwd és a /etc/shadow helyességét.
finger username - Részletes információ az adott felhasználóról.
chfn - Change Finger Information = A finger információinak kicserélése.
Csoportfájl- /etc/group Az állomány olvasható, de nem érdemes javítani!
Szerkezet:
csoportnév:jelszó:GroupID:tag1,tag2,tag3,...
Példa:
uupc:x:14:uupc,fax,root,fnet,tferi
Alapszabály: Minden usernek muszáj min. 1 csoporthoz tartoznia.
groupadd - Új csoport készítése. Csak a root használhatja.
groupmod -Csoport módosítása. Csak a root használhatja.
groupdel - Csoport törlése. Csak a root használhatja.
grpck - Group Check = Csoport-ellenőrzés. Csak a root használhatja.
Időnként érdemes kiadni.
Gyakorlatilag megnézi a /etc/group helyességét.
useradd - Új felhasználó felvitele. Csak a root használhatja.
Az alapbeállítások helye: /etc/default/useradd, illetve /etc/login/defs
A fontosabb beállítások részletesen: /etc/skel
usermod - Régi felhasználó módosítása. Csak a root használhatja.
userdel - Felhasználó törlése. Csak a root használhatja.
Lehet, hogy a felhasználó levelesládáját meghagyja! Helye: /var/spool/mail
lastlog - Minden egyes felhasználó utolsó belépését írja ki.
Fájl: /var/log/lastlog
User ellenőrzése X alatt: Gnome-ban: userconf
KDE-ben: User Management = KUser
Jelszó-kódoláshoz érdemes elolvasni: man crypt.
Jelszótörő-program Brutal Force módszerrel: Netcracker. Kicsit durva, de "mazochistáknak ajánlott".
27.8.) Rendszernaplók
27.8.a.) Rendszernapló: syslogd
27.8.b.) Webnaplók elemzése Apache szerveren
- A naplók helye: /etc/httpd/logs, esetleg: /usr/local/apache/logs
- Az állomány neve: apache_log
- Azért nem árt ezt lekérdezni a gépünkön: httpd -V
- Egyik lehetséges megoldás: Analog webnaplóelemző szoftver!
Weblapja: http://www.analog.cx/
- Ára: Nem GPL!
- Másik lehetséges megoldás: Webalizer webnaplóelemző szoftver!
Weblapja: http://www.mrunix.net/webalizer/
- Tükör: http://webalizer.dexa.org/
- Látványos, színpompás és gyors kimutatások!
- Javasolt minden nap futtatni! Minta:
Cron-ban: 0 6 * * * /usr/local/webalizer 1> /dev/null 2> /dev/null
- Konkrét mintája: http://www.jaky.hu/usage/index.html
27.9.) DNS és társai
27.9.a.) BIND
- BIND = Berkeley Internet Name Domain
- A névszolgáltatásért felelős szolgáltatás. Démonja: named.
- Megjegyzés: Bár a rövidítés feloldásából is látható, hogy a rendszer a Berkeley Egyetemről származik,
de azért mindenhol ezt használják.
- Gazdája: Internet Software Consortium (ISC) Webhely: www.isc.org
- Lehet önálló Name Serverünk, de ennek beállítása nem túl egyszerű!
Másodlagos névszervert viszont könnyű felállítani. Ilyenkor a hivatkozást fel kell vinni a
/etc/resolv.conf állományba.
- Minta - saját munkahelyemé:
#domain mydomain.dom
nameserver 195.199.0.133 //Primary DNS
nameserver 195.199.0.121 //Secondary DNS
- Ez egy DNS-ügyfelet állít be, nem pedig egy DNS-kiszolgálót.
- Így egy adott gépet meg lehet keresni a host vagy a nslookup paranccsal.
- Eme parancsoknál a /etc/nsswitch.conf állomány határozza meg a keresési sorrendet!
- DNS Szerver mintája:
www.salmar.com/marcel/ - > Ott: Downloads
- Állomány neve (általában): /etc/named.conf, de Debian alatt: /etc/bind
- Mintafájl (Egyes verziókban az "in" szócska elmaradhat!):
options {
directory "/var/named" //Hol vannak a leírófájlok
};
zone "localhost" in {
type master; //Ez a saját zóna egyik neve.
file "localhost.zone"; //Leírófájl
};
zone "." in {
type hint; //Mi van, ha a kért cim nincs helyben
file "named.ca"; //Ezt a listát kérdezze meg!
};
zone "0.0.127.in-addr.arpa" in { //Fordított zóna. Kötelező!
type master;
file "named.local";
};
zone "jaky.hu" { //Saját iskolámé! Kérem, NE HASZNÁLJA!
type master; //A zóna elsődleges, tehát én kezelem
file "jaky.hu"; //Itt vannak leírva a beállítások
};
zone "65.100.199.195.in-addr.arpa" { //Saját iskolámé! Kérem, NE HASZNÁLJA!
type master; //A zóna elsődleges, tehát én kezelem
file "db.65.100.199.195"; //Ez is szükséges! A pontos IP-cim: 195.199.100.65
};
- A fájl egyik mintája letölthető innen:
http://www.tferi.hu/konyv5/named/named.conf
- Az összes mintafájl letölthető 1 db tömörített állományként innen:
http://www.tferi.hu/konyv5/named/generic_dns.zip
- Célszerű a "named.ca" állományból mindig a legfrissebbet tárolni.
- Suse Linux-on neve: root.hint
- Beszerzése: dig@e.root-servers.net > ujgyorstar_fajl
- Érdemes a "dig" parancssori eszközt is kipróbálni. Elég sokat tud...
- Egyedi gépnél a localhost.zone fájl végtelen egyszerű. Minta:
zone mydomain.dom {
type slave; //Nem önálló, hanem csak mást követ.
Masters ( ip_cim; ) ; //Ezt az IP-cimet követi. Lehet több is
}
- A típus slave helyett persze lehet master is, melynek jelentése szerint ott találhatóak
elsődlegesen a név-információk. Ilyenkor a felépítés is bonyolultabb. Minta:
@ IN SOA localhost. root.localhost. (
20030221800; Serial Sorszám. Az utolsó 2 jegy a napon belüli sorszám
28800 ; Refresh Frissítési gyakoriság
14400 ; Retry
3600000 ; Expire Lejárat. Nem kötelező
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
- A fájl egyik mintája letölthető innen:
http://www.tferi.hu/konyv5/named/localhost.zone
- Az IN jelentése: Internet-bejegyzés. Igaz, hogy itt csak ez lehet.
- SOA = Start of authority, azaz itt kezdődik minden.
- Utána jön a teljes tartománynév (localhost.). Figyelem! Utána kell 1 db pont is!
- Következik a hely felügyelőjének E-mail címe. Itt a kukac (@) helyett pontot kell használni.
- Magyarul a helyes cím: root.localhost. Persze itt sem marad el a cím végén az újabb pont.
- Az immár zárójelben lévő sorszám jön. Formátuma: ééééhhnnpp
- A sorszám-sor változásait követik a másodlagos (slave) szerverek.
Miért kell másodlagos szerver is? Biztonsági megfontolás! Mi van, ha az egyik kiesik?
- A többi adat másodpercben értendő, de lehet "3D" (3 nap) formátumban is.
Hasonlóan lehet hónap, illetve év is.
- Az "NS" bejegyzés a következő. Jelentése: névszerver.
- A "PTR" bejegyzés jön. Jelentése: domain-név mutatója.
- További lehetséges bejegyzések: "MX" - Mail eXchange = Levelezőszerver;
"CNAME" - Canonic NAME = A domainek helyettesítő nevei (alias-ok);
"NULL" - Null = üres bejegyzés. Tesztelési célból.
"RP" - Responsible Person = Néhány domain-nél szükséges levelezőbox.
"HINFO" - Host INFOrmation = A gép leírása (CPU-típus, Operációs rendszer)
27.9.b.) Saját zónaállomány
2004-es állapot szerinti leírás!!!
- Erre a "named.conf" a következőképpen hivatkozik:
zone "mydomain.dom" {
type master;
file "named.hosts";
}
- Nézzük a következő mintát a "named.conf" állományra:
@ IN SOA mydomain.dom root.mydomain.dom. (
2003010800 ; Serial
28800 ; Refresh
14400 ; Retry
604800 ; Expire
86400 ) ; Minimum
0 IN NS ns.mydomain.dom.
0 IN MX 10 mail.mydomain.dom. ; Elsődleges mail-szerver
0 IN MX 20 mail2.mydomain.dom. ; Másodlagos mail-szerver
ns 0 IN A 192.168.22.10 ; Ez a névszerver
mail 0 IN A 192.168.1.11 ; Levél-továbbító
gateway 0 IN A 192.168.22.99 ; Átjáró
www 0 IN CNAME gateway.mydomain.dom. ; Helyettesítő név
@ TXT "Saját cégem, vagy bármi más"
; Other hosts = egyéb hostok
natika 0 IN A 192.168.22.1
tferi 0 IN A 192.168.87.1
}
- Látható, hogy az "MX" rekordok súlyozva vannak. Minél kisebb a szám, annál előrébb van a prioritásban.
- Több "NS" bejegyzés is lehet, ha az internetre csatlakozunk.
- Látható, hogy az "A" bejegyzések egyszerűen gépneveket párosítanak IP-címekhez,
míg a "CNAME" csak egy helyettesítő nevet ad.
- Apró megjegyzés: CNAME nevet ne használjuk az MX-bejegyzéshez!
- Egy lehetséges mintát közlök itt, mely a saját iskolámé. Kérem, NA HASZNÁLJA!
A file neve: "jaky.hu"
$TTL 86400
jaky.hu. 1D IN SOA ntserver.jaky.hu. root.jaky.hu. (
2002121603 ; serial (d. adams)
43200 ; refresh
14400 ; retry
2592000 ; expiry
86400 ) ; minimum
jaky.hu. 1D IN NS ntserver.jaky.hu.
jaky.hu. 1D IN NS ns2.szivarvanynet.hu.
jaky.hu. 1D IN NS calypso.tbsz.sulinet.hu.
jaky.hu. IN MX 10 mail.jaky.hu.
ntserver.jaky.hu. 1D IN A 195.199.100.65
www.jaky.hu. 1D IN A 195.199.100.65
ftp.jaky.hu. 1D IN A 195.199.100.65
mail.jaky.hu. 1D IN A 195.199.100.72
27.9.c.) Fordított DNS-zóna
- Az eredeti IP-szám: 192.168.22.0
- Itt el kell hagyni az utolsó nullát, helyette beírni az in-addr.arpa címet.
Ezt a szakaszt a named.conf állományba kell beírni. Minta:
zone "22.168.192.in-addr.arpa" {
type master;
file "named.rev";
};
- Ez pedig a named.rev állomány lehet:
@ 0 IN SOA mydomain.dom. ns.mydomain.dom. (
2003011800 ; Serial
28800 ; Refresh
14400 ; Retry
604800 ; Expire
86400 ) ; Minimum
0 IN NS ns.mydomain.dom.
11 0 IN PTR mail.mydomain.dom.
99 0 IN PTR gateway.mydomain.dom.
1 0 IN PTR natika.mydomain.dom.
2 0 IN PTR tferi.mydomain.dom.
- A sorok lényegében megegyeznek a "named.conf" állományéval, majd csak itt a rekordokat "PTR"-nek hívják.
A SOA és az NS állomány a szokásos, míg a többi szám a sorok elején különböző kell, hogy legyen!
- Egy másik named.rev letölthető innen:
http://www.tferi.hu/konyv5/named/named.rev
27.9.d.) Működőképesség
- Kérdés, hogy működik-e mindaz, amit sikerült összehozni. A gyorsabb módszer:
dig -x 192.168.22.3
- Ha erre értelmes választ kapunk, benne sehol sem lesz error, akkor megnyugodhatunk.
- Én személy szerint jobban szeretem az internetes megoldást.
- Szóval egy böngészővel keressük fel a www.nic.hu webhelyet,
ahol egy egészen jó ellenőrző-algoritmust használhatunk teljesen ingyen. Igaz, hogy angol nyelvű, de tökéletesen
megbízhatóan működik.
- A pontos URL: http://www.domain.hu/domain/regcheck/
- A fejezet mellett egy helyesen bejegyzett domain ellenőrzésének eredménye látható. (jaky.hu)
27.9.e.) Ki láthatja mindezt?
27.10.) IP-továbbítás és -álcázás
A legfontosabb beállító-állomány: /etc/sysconfig
Minta a felépítésére - Red Hat rendszeren:
NETWORKING = yes //hálózati kezelés megengedett
FORWARD_IPV4 = yes //A klasszikus IP(v4) szabvány szerinti adatkezelés
HOSTNAME = mailserv.mycompany.dom //Mi a szerver bejegyzett neve
DOMAINNAME = mycompany.dom //Mi a domain neve
GATEWAY = //Van-e átjáró (gateway)
GATEWAYDEV = //Beállításai
Itt a leglényegesebb a 2.sor, ahol a klasszikus IP-v4-es szabványt engedélyezzük.
Gyakorlatban ezzel az egyetlen kliensgépünk képes szerverként viselkedve a többi hálózatba
kötött gép internetes adatforgalmát is továbbítani úgy, mintha az tőle saját magától jönne.
Az utolsó 2 sor csak akkor kap értéket, ha a gép létrehozza a diald segítségével
a PPP-protokollt, magyarul, ha telefonon internetezünk.
Megjegyzés: a /etc/sysconfig az én Suse rendszeremen egy egész könyvtár.