Začetna nastavitev strežnika CentOS 7: podedovani kontrolni seznam za sodoben Linux
Datum objave:
Posodobljeno:
Tehnični članki > Začetna nastavitev strežnika CentOS 7: podedovani kontrolni seznam za sodoben Linux
Stanje in varna uporaba v letu 2026
Sklep: Novega produkcijskega sistema ne postavljajte na CentOS Linux 7, ki je 30. junija 2024 dosegel konec življenjske dobe. Na podprtem sistemu iz družine RHEL upravljajte pakete z DNF, ustvarite imenovane skrbniške uporabnike, nastavite čas in ime gostitelja ter ohranite vključena požarni zid in SELinux.
Kaj boste izvedeli
- Katere osnovne nastavitve je zajemal prvotni kontrolni seznam za CentOS 7.
- Kako konec življenjske dobe, upravljanje paketov, systemd, požarni zid in SELinux vplivajo na današnjo odločitev.
- Kako stare ukaze uporabiti kot podlago za selitev, ne kot sodoben varnostni standard.
Komu je članek namenjen? Skrbnikom podedovanega strežnika CentOS 7 in ekipam, ki stari operativni priročnik prenašajo na podprto platformo.
Opomba za leto 2026: Spodnji ukazi so ohranjeni kot zgodovinsko gradivo za CentOS 7. SELinuxa ne onemogočite trajno samo zato, da bi aplikacija delovala; ohranite način enforcing, način permissive pa uporabite le začasno za diagnostiko. Namesto zanašanja na arhivirane pakete načrtujte in preizkusite selitev.
Varnostna opomba: Ukazi in konfiguracijski primeri iz prvotnega članka niso bili znova preizkušeni v sodobnem produkcijskem okolju. Pred uporabo v ločenem preizkusnem okolju preverite podprte različice, izdelajte varnostne kopije ter določite nadzor dostopa in postopek povrnitve.
Uradni viri
Pregled
Članek opisuje prvotne korake po namestitvi sistema CentOS 7.6 (1810). Ker ta različica ni več podprta, so koraki namenjeni razumevanju podedovanega okolja in pripravi selitve.
Kazalo vsebine
1. Osnovna nastavitev
V nadaljevanju so opisane osnovne nastavitve iz prvotnega postopka za CentOS 7.
1-1. Preverjanje različice operacijskega sistema
Najprej preverite nameščeno distribucijo in njeno različico.
[root@hostname ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
Izpis 'CentOS Linux release 7.6.1810 (Core)' potrjuje različico v prvotnem primeru. Pri dejanskem strežniku preverite tudi stanje podpore te različice.
1-2. Namestitev orodij
Minimalna namestitev morda ne vsebuje starejših omrežnih ukazov, kot je ifconfig. Spodnji zgodovinski primer z yum namesti nekaj diagnostičnih orodij.
Ukaz 'yum -y update' je bil v CentOS 7 namenjen posodobitvi nameščenih paketov. Na podprtem sodobnem sistemu uporabite njegov trenutni upravljalnik paketov in pred posodobitvijo preverite vpliv sprememb.
[root@hostname ~]# yum install -y net-tools
[root@hostname ~]# yum install -y wget
[root@hostname ~]# yum install -y tcpdump
[root@hostname ~]# yum install -y traceroute
net-tools: vsebuje ifconfig in druga starejša omrežna orodja.
wget: prenaša vsebino prek protokolov, kot sta HTTP in HTTPS.
tcpdump: zajema in prikazuje omrežni promet; za uporabo so potrebna ustrezna dovoljenja in skrbno ravnanje z občutljivimi podatki.
traceroute: prikaže omrežno pot do ciljnega gostitelja.
1-3. Preverjanje in nastavitev SELinuxa
Ta starejši postopek predvideva izklop SELinuxa, ker je pri prvotni nastavitvi povzročal nepričakovane težave.
SELinux je pomembna varnostna plast. V sodobnem produkcijskem okolju ga zato ne izklopite brez presoje tveganja; primerneje je prilagoditi oznake ali pravila in ohraniti način enforcing. Naslednji koraki so navedeni samo za ponovitev zgodovinskega postopka.
Spodaj je ohranjen stari postopek za preverjanje in onemogočanje; v sodobnem okolju ga ne uporabite kot privzeto nastavitev.
[username@hostname ~]$ getenforce
Disabled
Stari postopek je za stanje, ki ni "Disabled", spreminjal naslednjo konfiguracijo.
[username@hostname ~]$ vi /etc/selinux/config
SELINUX=enforcing
SELINUX=disabled
Datoteka vsebuje nastavitvi 'SELINUX' in 'SELINUXTYPE'; stari primer spreminja samo 'SELINUX'. Napačna sprememba varnostnih nastavitev lahko prepreči pravilen zagon ali oslabi zaščito sistema, zato najprej preizkusite postopek povrnitve.
Ta zgodovinska sprememba začne veljati po ponovnem zagonu. Priporočena sodobna rešitev je odpraviti vzrok zavrnitve in SELinux ohraniti v načinu enforcing.
1-4. Dodajanje skrbniškega uporabnika
Vsakodnevno delo neposredno kot root povečuje posledice napake in otežuje revizijo dejanj. Zato ustvarite imenovanega uporabnika, privilegije pa mu dodelite le za naloge, ki jih potrebuje. V naslednjem koraku je neposredna prijava uporabnika root prek SSH onemogočena.
Ločeni uporabniki in skupine omogočajo načelo najmanjših privilegijev: skrbnik aplikacije potrebuje dostop do aplikacijskih datotek, skrbnik paketnih opravil pa le do svojih imenikov in storitev. Administrativna dejanja naj bodo sledljiva in izvedena z nadzorovanim dvigom privilegijev.
Stari primer uporabnika doda z naslednjima ukazoma.
[root@hostname ~]# useradd xxxxxx
[root@hostname ~]# passwd xxxxxx
Opomba: xxxxxxxx nadomestite z imenom uporabnika in nastavite močno, enkratno geslo v skladu s pravilnikom organizacije.
1-5. Sprememba gesla uporabnika root
Če niste prijavljeni kot root, stari postopek najprej preklopi na ta račun in nato spremeni njegovo geslo.
[username@hostname ~]$ su -
[root@hostname ~]# passwd
Opomba: uporabite dolgo, enkratno in naključno geslo oziroma geselno frazo, skladno s pravilnikom organizacije.
Privzetih ali zlahka uganljivih gesel, kot so "root", "password" in "1234", ne uporabljajte. Sama kratka zahteva po osmih znakih ni zadostna; pomembni so dolžina, neponovljivost, varno shranjevanje in omejitev poskusov prijave.
Majhen ali osebni strežnik je prav tako izpostavljen avtomatiziranim poskusom prijave. Neposredno prijavo uporabnika root omejite, dogodke beležite in redno pregledujte dnevnike.
1-6. Omejitev prijave prek SSH
Dovolite prijavo prek SSH samo imenovanim uporabnikom, neposredno prijavo računa root pa onemogočite.
Stari primer preklopi na root in v konfiguraciji sshd nastavi PermitRootLogin ter seznam AllowUsers. Ukaz 'su -' po tej spremembi še vedno omogoča lokalni preklop, če ima uporabnik potrebne poverilnice; prepoved velja za neposredno prijavo prek SSH.
[username@hostname ~]$ su -
[root@hostname ~]# vi /etc/ssh/sshd_config
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#LoginGraceTime 2m
PermitRootLogin no
AllowUsers xxxxxx
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
Opomba: xxxxxxxx nadomestite z uporabniškim imenom, ki ste ga pravkar dodali.
Napačen seznam AllowUsers lahko zaklene oddaljeni dostop. Pred spremembo ohranite odprto ločeno skrbniško sejo, preverite uporabniška imena in pripravite konzolni postopek povrnitve.
Preverite sintakso in znova zaženite sshd.
[root@hostname ~]# /usr/sbin/sshd -t
[root@hostname ~]# systemctl restart sshd
V ločeni novi seji preverite, da neposredna prijava root ni mogoča in da se imenovani uporabnik lahko prijavi. Obstoječe skrbniške seje ne zaprite, dokler preverjanje ne uspe.
1-7. Sinhronizacija časa
Preverite časovni pas in sinhronizacijo ure. Napačen čas v dnevnikih oteži povezovanje dogodkov in analizo incidentov.
V prvotnem CentOS 7 je za sinhronizacijo uporabljen chronyd, medtem ko so starejša okolja pogosto uporabljala ntpd. Spodnja ukaza preverita proces in stanje sistemske ure.
[root@hostname ~]# ps aux | grep chronyd
chrony 567 0.0 1.3 117804 13664 ? SL 5月04 0:04 /usr/sbin/chronyd
root 32489 0.0 0.0 112732 972 pts/1 S+ 16:30 0:00 grep --color=auto chronyd
[root@hostname ~]# timedatectl
Local time: dan (meseca) 2020-11-29 16:30:43 JST
Universal time: dan (meseca) 2020-11-29 07:30:43 UTC
RTC time: dan (meseca) 2020-11-29 07:30:43
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
Preverite, da je lokalni čas pravilen ter da izpis kaže vključeno in uspešno sinhronizacijo NTP.
1-8. Prijava s ključem SSH
Imenovanim uporabnikom omogočite prijavo s ključem SSH in po uspešnem preizkusu onemogočite prijavo z geslom, če to dopušča vaš postopek za nujni dostop.
Ključ SSH zmanjša tveganje ugibanja gesla, vendar mora biti zasebni ključ varno shranjen, zaščiten z geselno frazo in po potrebi preklican. Preverjanje ključa gostitelja ostaja obvezno.
Spodaj je ohranjen stari postopek, ki ključ ustvari na strežniku in ga nato prenese. Sodobnejši postopek praviloma ustvari ključ na zaupanja vrednem odjemalcu ter na strežnik namesti samo javni ključ.
[username@hostname ~]$ su - xxxxxx
[xxxxxx@hostname ~]$ ssh-keygen -t rsa -b 2048
Opomba: xxxxxxxx nadomestite z imenom dodanega uporabnika.
Stari ukaz "ssh-keygen -t rsa -b 2048" prikaže več vprašanj. Zasebnega ključa v sodobni uporabi ne puščajte brez geselne fraze, razen če imate dokumentiran nenadzorovan primer uporabe in druga ustrezna varovala.
Nato preverite ustvarjeni datoteki ključa.
[xxxxxx@hostname ~]$ ll /home/xxxxxx/.ssh
Opomba: xxxxxxxx nadomestite z imenom dodanega uporabnika.
Stari primer ustvari zasebni ključ "id_rsa" in javni ključ "id_rsa.pub".
Javni ključ preimenuje v authorized_keys, zasebni ključ pa začasno premakne za prenos.
[xxxxxx@hostname ~]$ mv /home/xxxxxx/.ssh/id_rsa.pub /home/xxxxxx/.ssh/authorized_keys
[xxxxxx@hostname ~]$ mv /home/xxxxxx/.ssh/id_rsa /home/xxxxxx/id_rsa
Opomba: xxxxxxxx nadomestite z imenom dodanega uporabnika.
Če sledite zgodovinskemu postopku, zasebni ključ po preverjenem prenosu izbrišite s strežnika.
Datoteko /home/xxxxxxxx/id_rsa varno prenesite na zaupanja vreden odjemalec, na primer z WinSCP, in omejite dovoljenja zanjo.
Šele po potrditvi celovitosti lokalne kopije izvedite prikazani ukaz za brisanje.
[xxxxxx@hostname ~]$ rm /home/xxxxxx/id_rsa
Opomba: xxxxxxxx je prej dodano uporabniško ime.
V ločeni novi seji preverite prijavo z zasebnim ključem. Obstoječe skrbniške seje še ne zaprite.
Šele ko je prijava s ključem potrjena in je pripravljen postopek nujnega dostopa, onemogočite prijavo z geslom.
[username@hostname ~]$ su -
[root@hostname ~]# vi /etc/ssh/sshd_config
PasswordAuthentication yes
PasswordAuthentication no
Preverite sintakso in znova zaženite sshd.
[root@hostname ~]# /usr/sbin/sshd -t
[root@hostname ~]# systemctl restart sshd
Po uspešnem preverjanju sintakse in nove prijave s ključem je nastavitev končana.
2. Povzetek
Prvotni kontrolni seznam za CentOS 7 zajema preverjanje različice, orodja, SELinux, imenovane uporabnike, omejitve SSH, sinhronizacijo časa in prijavo s ključem.
Ker CentOS 7 ni več podprt, teh korakov ne obravnavajte kot zadosten sodoben standard. Strežnik preselite na podprto platformo, SELinux in požarni zid ohranite vključena ter nastavitve preverite v uradni dokumentaciji izbrane distribucije.
Pri uporabi v novejšem okolju upoštevajte tudi opombe o različicah in varnosti na začetku članka.