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
  2. Povzetek

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


config【Pred spremembo】


SELINUX=enforcing


config【po spremembi】


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


sshd_config【Pred spremembo】


#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10


sshd_config【po spremembi】


#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


sshd_config【Pred spremembo】


PasswordAuthentication yes


sshd_config【po spremembi】


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.