„Ubuntu szerver alaptelepítés (Fossa)” változatai közötti eltérés
a (→SSH beállítása) |
a (→SSH beállítása) |
||
114. sor: | 114. sor: | ||
chattr +i /home/$user/.ssh/authorized_keys2</pre> | chattr +i /home/$user/.ssh/authorized_keys2</pre> | ||
A fenti beállításokkal csak a ''root'' tud a ''sysadmin'' felhasználó nevében történő bejelentkezéshez szükséges kulcsokat felvenni (az ''immutable'' bit levétele után). | A fenti beállításokkal csak a ''root'' tud a ''sysadmin'' felhasználó nevében történő bejelentkezéshez szükséges kulcsokat felvenni (az ''immutable'' bit levétele után). | ||
− | ===SSH beállítása=== | + | ===Az SSH démon beállítása=== |
A leírt telepítés során az ''ssh'' szerver és kliens már települt, most nézzük át az ''sshd'' beállításait: | A leírt telepítés során az ''ssh'' szerver és kliens már települt, most nézzük át az ''sshd'' beállításait: | ||
A lap 2020. május 2., 00:40-kori változata
Ebben a leírásban Ubuntu Focal Fossa (20.04 LTS) szervergép grafikus felület és specifikus szolgáltatások nélküli alaptelepítését végezzük el. Az eljárás "bármilyen" szerverre alkalmazható. Ez a leírás elsősorban technikai (checklist jellegű), az elméleti megfontolásokat az Ubuntu szerver házirend tartalmazza.
Tartalomjegyzék
Előfeltételek
- Működő hardver, konzol hozzáférés, tudjon CD-ről bootolni és lásson ki (védett, NAT-olt) hálózaton keresztül az Internetre. DHCP használata ajánlatos.
- Megfelelő architektúrájú Ubuntu Server boot DVD - 64 bites (Intel) CPU és legalább 2 GB RAM esetén a 64 bites lemezképet használjuk!
Telepítési beállítások
Ez a szakasz a telepítő DVD-ről bootolva a telepített rendszer első tényleges indulásáig tart, a védett hálózatra(!) csatlakozó telepítendő gép számára működő Internet kapcsolatot igényel.
Konzolról:
- Magyar nyelvű telepítés
- Magyar keyboard layout és variant
- Hálózat beállítása - ha automatikusan nem ismerné fel, IPv4 lehetőleg DHCP-vel
- HTTP proxy általában nem szükséges
- A felajánlott Ubuntu (apt) tükörszerver általában megfelelő
- Lemezek particionálása (custom storage layout) - itt mindenféle hitvita lehetséges, de a biztonsági minimum a boot, root, tmp, var, usr elkülönítése, hogy ezeket más-más paraméterekkel lehessen mountolni. Hagyományos merevlemezt csak redundánsan legalább software RAID-1 vagy RAID-5-ben üzemeltessünk (kivéve csak backup tárterület), SSD esetén is hajlanék a RAID-1 használatára (bár ezen vitatkoznak).
Particionálási séma két, software RAID-1-ben üzemelő SSD vagy TB nagyságrendű hagyományos merevlemez esetén:
sda sdb md megjegyzés sda1 200 MB RAID boot sdb1 200 MB RAID boot md0 RAID-1 ext4 /boot boot partíció sda2 2-4 GB RAID sdb2 2-4 GB RAID md1 RAID-1 [swap] cserehely (0,5x - 1x - 2x RAM) sda3 2-4-8 GB RAID sdb2 2-4-8 GB RAID md2 RAID-1 ext4 /tmp tmp partíció, akkor érdemes nagyobb mértűre venni, ha backup-restore jellegű műveletek várhatóak. sda5 2-4-8 GB RAID sdb5 2-4-8 GB RAID md3 RAID-1 ext4 / root partíció, 2G is elég lehet sda6 4-8 GB RAID sdb6 4-8 GB RAID md4 RAID-1 ext4 /usr usr partíció, 4G általában elég sda7 1-2 GB RAID sdb7 1-2 GB RAID md5 RAID-1 ext4 /srv/chroot opcionális partíció, pl. jail-ben üzemeltetett bind (cache-only DNS szerver) számára. sda8 X GB RAID sdb8 X GB RAID md6 RAID-1 ext4 /var
(1% fenntartott blokk elegendő)var partíció, a maradék tárterület (adatbázis, www, Samba, backup, etc. számára). Opcionálisan tovább osztható. Ha a rendszerlemez kicsi (pl. single SSD vagy SSD/RAID-1), a "nagy" tárterületet pl. az alábbiak szerint definiálhatjuk:
sdc sdd md megjegyzés sdc1 X GB RAID sdd1 X GB RAID mdX RAID-1 ext4 vagy lvm2-ext4 /mnt/storage
(1% fenntartott blokk elegendő)szolgáltatási tárterület (www, Samba, backup, stb. számára). Opcionálisan tovább osztható. TODO!
- Az első (UID = 1001, sudo-képes) felhasználó neve legyen egységes, pl. név: Administrator, login: sysadmin (az admin név a telepítő futásakor foglalt), a jelszó egyelőre lehet triviális pl. adminpass.
- Kérjük az SSH szerver telepítését.
- Szoftverválasztás és telepítés (snap) - a telepíthető szoftverek közül egyelőre egyik sem kell, mert mi okosabbak vagyunk, mint egy ötödikes... :).
Ezután megtörténik a telepítés, majd a DVD eltávolítása után a telepített rendszer első indítása.
A frissen telepített rendszer beállításai
A telepítést kényelmesebb SSH-n bejelentkezve folytatni. Mivel telepítéskor gyakorlatilag állandóan rendszergazdaként dolgozunk, érdemes a sudo -i paranccsal permanens root konzolra váltani, így nem szükséges minden parancs előtt a sudo begépelése.
Alap segédeszközök
A felső sor mindenképpen szükséges, az alsó sorban foglalt eszközöket részemről ugyancsak alapvetőeknek gondolom.
apt install pwgen unzip zip apt install links mc tofrodos # + néhány függőségKonzol szövegszerkesztő beállítása
Bár az alaptelepített nano teljesen használható, részemről az mcedit-et preferálom - opcionálisan legyen ez az alapértelmezett editor; ugyanitt állítsuk be, hogy az alapértelmezett (pl. az ls kimenetében megjelenő) dátum formátuma a locale szerinti helyett parse-olhatóbb legyen:
-rw-r--r-- root root /etc/profile.d/custom.sh # Custom editor. export EDITOR="/usr/bin/mcedit" # More parseable ls -la format. export TIME_STYLE="long-iso"A Midnight Commanderben hasznos beállítani (mc, F9, Beállítások, Alapbeállítások) a saját szövegszerkesztő használatát (F9, Beállítások, Saját szövegszerkesztő, OK). Az mcedit-ben (F9, Beállítások, Általános) az új sorban automatikus behúzást (ha be lenne kapcsolva) és a látható tabulátorokat(!) kikapcsolni, végül az mc beállításokat elmenteni (F9, Beállítások, Beállítások mentése).
Szerepnév beállítása
Amennyiben a gép hostname által mutatott elnevezése mellett létezik annak valamilyen szerepneve, és ezt szeretnénk a konzol promptban megjeleníteni (pl. mert jellemzőbb, mint az esetleg technikai hostnév), akkor az alábbiak szerint azonosan szerkesszük meg
- a sysadmin felhasználó,
- a root felhasználó,
- illetve a később létrehozandó felhasználók számára elkészített template .bashrc állományokat
(a ROLE_NAME-et mindenütt helyettesítsük a kívánt szerepnévvel):
-rw-r--r-- sysadmin sysadmin /home/sysadmin/.bashrc -rw-r--r-- root root /root/bashrc -rw-r--r-- root root /etc/skel/.bashrc [...] if [ "$color_prompt" = yes ]; then [...] fi unset color_prompt force_color_prompt # Include the server role string. PS1=${PS1/@\\h/@\\h (ROLE_NAME)} [...]A következő bejelentkezéstől kezdve a konzol promptban a szerepnév is megjelenik, pl. így:
root@x206-kdzwy54 (testing):~#A home könyvtárak átköltöztetése
Ezeket a kis méretű root partícióról permanensen a /var-ba helyezzük át, és symlinkeljük:
mv /home /var/home; ln -s /var/home /homeA sysadmin felhasználó beállításainak módosítása
A sysadmin alapvetően nem interaktív felhasználó, hanem egy indirekt belépés a root jogosultság eléréséhez, így nem hagyjuk, hogy a shelljére vonatkozó beállításokat megváltoztassa:
export user='sysadmin' chmod 440 /home/$user/.bashrc; chattr +i /home/$user/.bashrc chmod 440 /home/$user/.bash_logout; chattr +i /home/$user/.bash_logout chmod 440 /home/$user/.profile; chattr +i /home/$user/.profileEzután készítsük elő a sysadmin számára a nyilvános kulcsú távoli bejelentkezéshez szükséges állományokat:
export user='sysadmin' mkdir -m 500 /home/$user/.ssh chown $user:$user /home/$user/.ssh touch /home/$user/.ssh/authorized_keys2 chown $user:$user /home/$user/.ssh/authorized_keys2 chmod 400 /home/$user/.ssh/authorized_keys2 chattr +i /home/$user/.ssh/authorized_keys2A fenti beállításokkal csak a root tud a sysadmin felhasználó nevében történő bejelentkezéshez szükséges kulcsokat felvenni (az immutable bit levétele után).
Az SSH démon beállítása
A leírt telepítés során az ssh szerver és kliens már települt, most nézzük át az sshd beállításait:
- Tiltsuk le a root jelszóval történő belépését ssh-n keresztül! Házirendünkben a root felhasználóhoz nyilvános kulcsot senkinek nem adunk ki (így a root-hoz mindig két lépés kell: sudo-képes felhasználóként, pl. sysadmin-ként kell belépni - kulccsal vagy jelszóval - és sudo-zni). Ha valamiért szükséges automata root login, akkor megtartjuk az alapértelmezett, csak kulccsal történő belépést; ha nincs ilyen igény, a közvetlen belépést teljesen letiltjuk.
- Opcionálisan, amennyiben nem az alapértelmezett TCP:22-es portot használjuk, állítsuk át a portszámot is (ez nézetem szerint nem célszerű, mert a közbenső tűzfalak valószínűleg nincsenek rá felkészülve).
-rw-r--r-- root root /etc/ssh/sshd_config [...] # What ports, IPs and protocols we listen for Port XXXXX [...] #PermitRootLogin prohibit-password PermitRootLogin no [...]Indítsuk újra az ssh démont (a meglévő munkamenet nem fog megszakadni):
systemctl restart sshd