Egy többfelhasználós rendszernek szükséges megkülönböztetnie egymástól a felhasználóit, hogy tudjanak egyszerre is dolgozni, valamint megakadályoznia, hogy hozzáférhessenek egymás fájljaihoz és könyvtáraihoz engedély nélkül. Nézzük át, hogy a felhasználók hogyan léphetnek be a rendszerbe.
Mielőtt használatba vennénk a parancsértelmezőnket, előbb be kell jelentkezni a rendszerbe. Ezt kétféleképpen tehetjük meg, vagy a számítógép előtt ülve, vagy távolról. A következőkben átvesszük mindkettőt.
Helyi bejelentkezés
A bejelentkezési folyamat a getty program indulásával kezdődik. Az inittab fájlban állíthatjuk be, hogy mely terminálokon induljon el a getty program, azaz hányas számú terminálok legyenek aktívak a belépésre. A getty feladata, elindítani a login programot, amely kéri a felhasználói nevet és a jelszót. Ne ijedjünk meg, biztonsági okok miatt, nem fog megjelenni karakter a jelszó gépelése közben.
Naxonet login: jonci Password:
A login program a /etc/passwd és ha létezik, akkor a /etc/shadow fájlt is felhasználja a felhasználó azonosítására. E két fájlról a Felhasználók és csoportok kezelése fejezetben (hamarosan) lehet bővebben olvasni.
A /etc/nologin fájl létrehozásával megakadályozható a felhasználók belépése, ilyenkor csak a rendszergazda jelentkezhet be. A rendszer lekapcsolásakor is automatikusan létrejön, hogy senki se léphessen be, amíg a rendszer újra be nem töltődik.
Karakteres, helyi bejelentkezés esetén a <gépnév> login: előtt a rendszer megjeleníti a /etc/issue fájl tartalmát (pre-login message, belépés előtti üzenet). Ebben különböző információk kiírására utasíthatjuk a getty programot.
Távoli bejelentkezés
Vonatkoztassunk el a hardver feltételektől, foglalkozzunk inkább csak a szoftver oldalával. A két gépnek kommunikálnia kell egymással és ehhez programok szükségesek. Amelyik géphez akarunk csatlakozni, azt nevezzük szerver gépnek, a másikat pedig kliensnek. Többféle kommunikációs csatorna létezik, a használni kívánt programtól függ, hogy melyikkel jön létre az adatforgalom. Amikor csatlakozni akarunk egy szerverhez, akkor először kéréssel fordulunk hozzá.
A kérésre háromféleképpen reagálhat a szerver. Az egyik lehetőség, hogy a szolgáltatást biztosító program fut a háttérben (démon), fogadja a kéréseket és biztosítja a kommunikációt. A másik lehetőség, hogy – a háttérben mindig futó – inetd démon fogadja a kérelmeket és elindítja a szolgáltatást biztosító programot. A /etc/inetd fájlban állíthatjuk be a biztosítani kívánt szolgáltatásokat. Figyeljünk rá, hogy alapesetben sok szolgáltatás engedélyezve lehet (feleslegesen), ami biztonsági rést is jelenthet, így a nem használt szolgáltatást jobb, ha bezárjuk. A harmadik esetben a szerver elutasítja a kapcsolatot. Többek között lehet oka, hogy nem fut a szolgáltatás, ami feldolgozná a kéréseket, vagy a tűzfal blokkolja a csatlakozást.
Távoli bejelentkezés előtti üzenetet a /etc/issue.net fájlban helyezhetünk el. Manapság már nem használatos telnet szolgáltatás alapból megjelenítette (magát a telnet programot gyakran használják tesztelés céljára), az ssh esetén engedélyezni kell a /etc/ssh/sshd_config fájlban:
Banner /etc/issue.net
A beállítás érvényesítéséhez indítsuk újra az ssh a szolgáltatást:
root@bash# /etc/init.d/ssh restart
Ezután a következő bejelentkezésnél megjelenik a tartalma.
Sikeres bejelentkezés után
A képernyőre kerül a /etc/motd (message of the day) fájl tartalma (post-login message, belépés utáni üzenet). Rendszergazdák ezt a fájlt használják a rendszer hirdető táblájának, hisz alapértelmezetten minden felhasználó minden bejelentkezésénél megjelenik a tartalma. Ezen felül a rendszer ellenőrzi, hogy van-e levél a postaládánkban (alapesetben: /var/mail/<felhasználónév>). Ha a fájl nem létezik, nem ír ki semmi, ha létezik, de nincs benne levél, akkor a no mail for <felhasználóné> üzenet látható. Ha van levelünk, de mind olvasatlan, akkor a You have mail, ha olvasatlan is akad közöttük, akkor a You have new mail fogad minket.
Csendes bejelentkezés
Mind a /etc/motd fájl, mind a levelesláda állapotának megjelenítését letilthatjuk, ha elhelyezünk egy tetszőleges tartalmú .hushlogin fájlt a home könyvtárunkban (alapesetben: /home/<felhasználónév>/). A feltétel nélküli letiltás gondot okozhat, ezért ajánlott csak az ismétlődő megjelenítést mellőzni. Az alábbi példát helyezzük el a ~felhasználónév/.bash_profile fájlban:
if [ ! -e ~/.hushlogin -o /etc/motd -nt ~/.hushlogin ] 2>/dev/null then cp /etc/motd ~/.hushlogin more ~/.hushlogin fi
Ha nem létezik a .hushlogin fájl, vagy létezik, de régebbi, mint a /etc/motd, akkor lemásolja a /etc/motd fájlt a felhasználó saját könyvtárba .hushlogin néven és megjeleníti a képernyőn, minden más eseten nem történik kiírás.
A make program felhasználásával is bemutatunk egy példát (bár sok rendszeren alapból nem települ a make, szerveren pedig egyenesen kerülendő):
if [ -f /etc/motd ] then make -s -f .hushlogin .hushlogin fi
Azaz, ha létezik a /etc/motd, akkor a make programmal (-s, csöndes üzemmód), feldolgoztatjuk a .hushlogin-t mint makefile és ugyanaz lesz a célállomány is.
A .hushlogin fálba a következőket helyezzük el (a -> a tabulátor jele):
.hushlogin: /etc/motd -> touch .hushlogin -> more /etc/motd
Megadjuk, hogy a .hushlogin a /etc/motd fájltól függ, és ha régebbi annál, akkor a touch és more parancsokat kell végrehajtani. A touch frissíti .hushlogin módosítási dátumát a aktuális időpontra, majd a more megjeleníti a /etc/motd tartalmát.
Szolgáltatások tiltása és engedélyezése számítógépenként
Lehetőségünk van az inetd szolgáltatását egyenként tiltani vagy engedélyezni adott címekre. A tiltásokat a /etc/hosts.deny fájlban, az engedélyezéseket a /etc/hosts.allow fájlban kell megadni. Ha nem léteznek, akkor semmiféle korlátozás nincs beállítva.
Célszerű a /etc/hosts.deny fájl tartalmát a következőre beállítani:
ALL: ALL
Ezzel minden szolgáltatást tiltunk mindenkinek befelé. A /etc/hosts.allow fájlban pedig engedélyezhetjük a kívánt szolgáltatásokat megadott gépekre, vagy tartományokra. A szolgáltatások listáját a /etc/services fájlban találjuk. Az alábbi példa az ftp szolgáltatást engedélyezi a belső hálóra:
in.ftpd: 192.168.0.0/255.255.255.0
A két fájl használatával jól konfigurálható egy szerver, de nagyobb biztonságot érhetünk el egy igazi tűzfal használatával (például: iptables – erről majd egy későbbi bejegyzésben írok).