Linux/Saját linux live CD készítése/Az alaprendszer testreszabása
E fejezet a debian installálása után szokásos lépések egy részét mutatja be. A live CD akkor is működik már, ha egyik lépést sem hajtjuk végre, viszont rescue CD-nél fontos a kényelem, hogy a hiba kijavítására összpontosíthassunk.
Nem cél viszont grafikus felület telepítése. Nem alkalmazásokat akarunk futtatni a live CD-vel, hanem telepíteni vagy bootolási hibát kijavítani. Éppen ezért e szócikkben tűzfalat sem telepítünk. Természetesen az itt leírtak kiegészítésével a live CD akár grafikus munkaállomássá is válhatik.
Kiindulás
szerkesztésChroot-ban vagyunk, frissen telepített minimális debian (linux) rendszerben. Az alaprendszer konfigurálását akarjuk folytatni.
Egy-egy fájl módosításához vagy bemásolásához nem kell belépni chroot-ba: kívülről is megtehető.
A paranccsoros felület testreszabása
szerkesztésPrompt
szerkesztésA debootstrap az őt futtató hoszt nevét tette meg a guest nevének, és ezt írja ki a promptban. Ez nagyon zavaró, ha virtuális gépben dolgozunk, még inkább, ha ssh-val lépünk a liveCD-re, mert könnyű összetéveszteni a host és a guest ablakát.
A javítás egyszerű: a /etc/hostname-ben kell kijavítani a kívánt hosztnevet. Lehet pl. ZFS-live
.
Színes ls parancs
szerkesztésA /root/.bashrc-ben töröljük a #
-jelet az alábbi sorok elől:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
Az utolsó sor ll
néven színes ls -l
parancsot csinál. További aliasokat tehetünk a fájlba.
bash parancstörténet
szerkesztésA PgUp/PgDn billentyűvel ki lehet keresni a leírt betűkkel kezdődő, korábban kiadott parancsokat, a Home én End gombbal pedig a paranccsor elejére ill. végére ugrani. Ehhez /root/.inputrc-t kell létrehozni az alábbi tartalommal:
set meta-flag on set convert-meta off set output-meta on "\e[1~": beginning-of-line "\e[2~": yank-last-arg "\e[3~": delete-char "\e[4~": end-of-line "\e[5~": history-search-backward "\e[6~": history-search-forward
Helyi idő
szerkesztésdpkg-reconfigure tzdata
A nyelvi beállítás általában jó, ha angolon marad. Ha meg akarjuk változtatni:
apt-get install locales kbd
Karakteres felületen a loadkeys hu
vált magyar billentyűzetre.
Copy & paste karakteres felületen
szerkesztésapt-get install gpm
Néhány hasznos parancs
szerkesztésapt-get install less file psmisc net-tools lsof
A net-tools csomag felinstallálja pl. a netstat és ifconfig parancsot, a psmisc például pstree-t.
Más csomag is hasznos lehet, pl. mc, parted, dosfstools (mkfs.fat parancs UEFI-hez), gdisk, stb.
Szolgáltatások leállítása
szerkesztésA boot során elindítandó szolgáltatásokat így listázhatjuk ki (akár chroot-ból is):
systemctl list-unit-files --state=enabled
autovt@.service enabled cron.service enabled getty@.service enabled irqbalance.service enabled live-tools.service enabled networking.service enabled rsync.service enabled rsyslog.service enabled syslog.service enabled systemd-timesyncd.service enabled uuidd.socket enabled remote-fs.target enabled apt-daily-upgrade.timer enabled apt-daily.timer enabled
Biztosan nem kell a csomagfrissítést végző két timer egy live CD-re. Nem kell a cron sem, és célszerű leállítani rsync-et és remote-fs-t is, hiszen szükség esetén bármikor elindíthatók:
for f in apt-daily-upgrade.timer apt-daily.timer cron rsync remote-fs.target
do systemctl disable $f
done
Hálózat
szerkesztésA live CD-t bootoló gép induláskor DHCP-n kér IP-címet, és erről a live CD létrehozásakor nem is lehet lebeszélni, még a networking.service tiltásával sem. A /etc/network/interfaces fájlt nemes egyszerűséggel felülírja a bootolás során. Bootolás után kézzel átkonfigurálható statikus IP-címre.
A hálózat indulásával egyetlen port sincs nyitva, vagyis nincs biztonsági probléma. Látjuk az internetet: tudunk új csomagot telepíteni.
ssh
szerkesztésÉrdemes az ssh-t felinstallálni, hogy ne csak konzolról, hanem távoli gépről is tudjuk használni a liveCD-t:
apt-get install openssh-server
Ezután még mindig nem lehet bejelentkezni ssh-val, két okból:
- a root számára nem megengedett a jelszavas bejelentkezés
- nem megengedett az üres jelszavas bejelentkezés.
A fenti dolgokat ne a live CD-n oldjuk meg: ez biztonsági problémákat vetne fel. A legjobbnak tűnő megoldás a live CD-n a /etc/ssh/sshd_config-ot kiegészíteni két sorral, hogy ne kelljen keresni a beállítást:
# PermitRootLogin yes # PasswordAuthentication yes
A két sor kommentben van, nem befolyásolja az ssh működését.
A liveCD bootolása után
- állítsunk be root jelszót:
passwd
- töröljük a komment-jelet a fenti két sor elől, és indítsuk újra az ssh-t:
systemctl restart ssh
Most jelszóval be tudunk jelentkezni. Másoljuk át a publikus kulcsunkat arról a gépről, ahonnan a live CD-be be akarunk jelentkezni:
ssh-copyid -i ~/.ssh/id_rsa.pub root@liveCD_IP
Ezután írjuk vissza a komment-jeleket, és ismét indítsuk újra az ssh-t. Ennyi idő alatt csak akkor törik meg a jelszót, ha nagyon rosszat választottunk.
Ezzel a kulcsunk a liveCD-n van. A következő bootolásig jelszó nélkül be tudunk jelentkezni kulccsal, másképp nem. És amiért csináltuk: más sem.
Ha tovább akarjuk növelni a biztonságot, a root jelszó változtatása előtt húzzunk fel tűzfalat a live CD-n, ami csak arról a gépről engedi be az ssh-t, ahonnan be akarunk jelentkezni.
Ha a kényelem kedvéért hajlandóak vagyunk egy kicsit lazítani a biztonságon, tegyük fel a publikus kulcsunkat a live CD /root/.ssh/authorized_keys fájljába. Ez esetben a live CD bootolása után azonnal be tudunk jelentkezni ssh-val arról a gépről, aminek a kulcsát felmásoltuk. (Más gépről még mindig megvan a fenti bejutási lehetőség annak, aki a live CD-t bootoló gép konzoljánál ül.) A biztonsági kockázat az, hogy kikerül a gépünkről a titkos kulcs, és a bitorló megneszeli, hogy bebootoltuk valahol a live CD-t. Ha csak mi magunk használjuk a live CD-t, ez a kockázat esetleg vállalható; ha megosztjuk másokkal, akkor biztosan nem.
Hogyan tovább?
szerkesztés- az alaprendszer testreszabása Fedora telepítéséhez a live CD-re VAGY
- ZFS fájlrendszer installálása a live CD-re VAGY
- bootolható ISO előállítása az eddig installált csomagokkal. Előbb azonban lépjünk ki chroot-ból.