Configurarea și configurațiile inițiale ale serverului pe RHEL 7


În acest tutorial, vom discuta primii pași de configurare de care trebuie să aveți grijă după o nouă instalare a Red Hat Enterprise Linux 7 pe un server bare metal sau pe un server privat virtual.

Cerințe

  1. Instalare minimă RHEL 7

Important: utilizatorii CentOS 7 pot urma acest articol pentru a efectua o configurare inițială a serverului pe CentOS 7.

Actualizați sistemul RHEL 7

În primul pas, conectați-vă la consola serverului dvs. RHEL cu un cont cu privilegii root sau direct ca root și rulați comanda de mai jos pentru a actualiza complet componentele sistemului, cum ar fi pachetele instalate, nucleul sau aplicați alte corecții de securitate.

yum check-update
yum update

Pentru a elimina toate pachetele descărcate local și alte cache-uri YUM aferente, executați comanda de mai jos.

yum clean all

Instalați utilitarele de sistem pe RHEL 7

Următoarele utilitare se pot dovedi a fi utile pentru administrarea zilnică a sistemului: nano (editor de text pentru a înlocui editorul vi), wget, curl (utilități utilizate pentru descărcarea pachetelor în majoritatea rețelei) net-tools, lsof (utilități pentru gestionarea rețelelor locale) și bash-completion (completare automată în linia de comandă).

Instalați-le pe toate într-o singură lovitură executând comanda de mai jos.


yum install nano wget curl net-tools lsof bash-completion

Configurați rețeaua în RHEL 7

RHEL 7 are o gamă largă de instrumente care pot fi utilizate pentru configurarea și gestionarea rețelei, de la editarea manuală a fișierului de configurare a rețelei până la utilizarea comenzilor precum ip, ifconfig, nmtui, nmcli sau rută.

Cel mai simplu utilitar pe care un începător îl poate folosi pentru a gestiona și modifica configurațiile rețelei este linia de comandă grafică nmtui.

Pentru a schimba numele de gazdă a sistemului prin utilitarul nmtui, executați comanda nmtui-hostname, setați numele de gazdă a mașinii și apăsați pe OK pentru a finaliza, așa cum este ilustrat. în captura de ecran de mai jos.


nmtui-hostname

Pentru a manipula o interfață de rețea, executați comanda nmtui-edit, alegeți interfața pe care doriți să o editați și selectați editați din meniul din dreapta, așa cum se arată în captura de ecran de mai jos.

Odată ce vă aflați în interfața grafică furnizată de utilitarul nmtui, puteți configura setările IP pentru interfața de rețea, așa cum este ilustrat în captura de ecran de mai jos. Când ați terminat, navigați la OK folosind tasta [tab] pentru a salva configurația și a ieși.

Pentru a aplica noua configurație a interfeței de rețea, executați comanda nmtui-connect, selectați interfața pe care doriți să o gestionați și apăsați pe opțiunea Dezactivare/Activare pentru dezafectare și ridicare interfața cu setările IP, așa cum este prezentat în capturile de ecran de mai jos.


nmtui-connect

Pentru a vizualiza setările interfeței de rețea, puteți inspecta conținutul fișierului de interfață sau puteți emite comenzile de mai jos.


ifconfig enp0s3
ip a
ping -c2 google.com

Alte utilitare utile care pot fi folosite pentru a gestiona viteza, starea conexiunii sau pentru a obține informații despre interfețele de rețea a mașinilor sunt ethtool și mii-tool.


ethtool enp0s3
mii-tool enp0s3

Creați un cont de utilizator nou

La pasul următor, în timp ce sunteți conectat ca root pe serverul dvs., creați un utilizator nou cu comanda de mai jos. Acest utilizator va fi folosit mai târziu pentru a se conecta la sistemul dumneavoastră și pentru a efectua sarcini administrative.

adduser tecmint_user

După ce ați adăugat utilizatorul folosind comanda de mai sus, configurați o parolă puternică pentru acest utilizator lansând comanda de mai jos.

passwd tecmint_user

În cazurile în care doriți să forțați acest nou utilizator să-și schimbe parola la prima încercare de conectare, executați comanda de mai jos.

chage -d0 tecmint_user

Acest nou cont de utilizator are drepturi de cont obișnuite pentru moment și nu poate efectua sarcini administrative prin comanda sudo.

Pentru a evita utilizarea contului root pentru efectuarea de privilegii administrative, acordați acestui nou utilizator privilegii administrative adăugând utilizatorul la grupul de sistem „roată”.

Utilizatorilor care aparțin grupului „roată” li se permite, implicit în RHEL, să ruleze comenzi cu privilegii de rădăcină folosind utilitarul sudo înainte de a scrie comanda necesară pentru execuție.

De exemplu, pentru a adăuga utilizatorul „tecmint_user ” la grupul „roată”, executați comanda de mai jos.

usermod -aG wheel tecmint_user

După aceea, conectați-vă la sistem cu noul utilizator și încercați să actualizați sistemul prin comanda „sudo yum update” pentru a testa dacă utilizatorul are puteri de root acordate.

su - tecmint_user
sudo yum update

Configurați autentificarea cu cheie publică SSH pe RHEL 7

La pasul următor, pentru a crește securitatea serviciului RHEL, configurați autentificarea cu cheie publică SSH pentru noul utilizator. Pentru a genera o pereche de chei SSH, cheia publică și privată, executați următoarea comandă la consola serverului dumneavoastră. Asigurați-vă că sunteți conectat la sistem cu utilizatorul pe care îl configurați cheia SSH.

su - tecmint_user
ssh-keygen -t RSA

În timp ce cheia este generată, vi se va solicita să adăugați frază de acces pentru a securiza cheia. Puteți introduce o frază de acces puternică sau puteți alege să lăsați expresia de acces necompletată dacă doriți să automatizați sarcinile prin serverul SSH.

După ce cheia SSH a fost generată, copiați perechea de chei publice pe un server la distanță executând comanda de mai jos. Pentru a instala cheia publică pe serverul SSH la distanță, veți avea nevoie de un cont de utilizator care are acreditări pentru a vă conecta la acel server.

ssh-copy-id [email 

Acum ar trebui să încercați să vă conectați prin SSH la serverul de la distanță folosind cheia privată ca metodă de autentificare. Ar trebui să vă puteți conecta automat fără ca serverul SSH să vă solicite o parolă.

ssh [email 

Pentru a vedea conținutul cheii SSH publice, dacă doriți să instalați manual cheia pe un server SSH îndepărtat, lansați următoarea comandă.

cat ~/.ssh/id_rsa

Securizare SSH pe RHEL 7

Pentru a securiza demonul SSH și a interzice accesul SSH la distanță la contul rădăcină prin parolă sau cheie, deschideți fișierul de configurare principal al serverului SSH și faceți următoarele modificări.

sudo vi /etc/ssh/sshd_config

Căutați linia #PermitRootLogin da, decomentați linia eliminând semnul # (hashtag) de la începutul liniei și modificați linia astfel încât să arate așa cum se arată în mai jos extras.

PermitRootLogin no

Ulterior, reporniți serverul SSH pentru a aplica noile setări și testați configurația încercând să vă conectați la acest server cu contul root. Accesul la contul root prin SSH ar trebui să fie restricționat până acum.

sudo systemctl restart sshd

Există situații în care este posibil să doriți să deconectați automat toate conexiunile SSH la distanță la server după o perioadă de inactivitate.

Pentru a activa această caracteristică la nivelul întregului sistem, executați comanda de mai jos, care adaugă variabila TMOUT bash la fișierul principal bashrc și forțează deconectarea sau renunțarea la fiecare conexiune SSH - scos după 5 minute de inactivitate.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

Rulați comanda tail pentru a verifica dacă variabila a fost adăugată corect la sfârșitul fișierului /etc/bashrc. Toate conexiunile SSH ulterioare vor fi închise automat după 5 minute de inactivitate de acum înainte.

tail /etc/bashrc

În captura de ecran de mai jos, sesiunea SSH la distanță de la mașina drupal la serverul RHEL a fost deconectată automat după 5 minute.

Configurați firewall pe RHEL 7

La pasul următor configurați firewall-ul pentru a securiza în continuare sistemul la nivel de rețea. RHEL 7 este livrat cu aplicația Firewalld pentru a gestiona regulile iptables pe server.

În primul rând, asigurați-vă că firewall-ul rulează în sistemul dvs. lansând comanda de mai jos. Dacă daemonul Firewalld este oprit, ar trebui să îl porniți cu următoarea comandă.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

Odată ce paravanul de protecție este activat și rulează în sistemul dvs., puteți utiliza utilitarul de linie de comandă firewall-cmd pentru a seta informațiile privind politica de firewall și pentru a permite traficul către anumite porturi de rețea, cum ar fi demonul SSH, conexiunea realizată. către un server web intern sau alte servicii de rețea conexe.

Deoarece acum rulăm un daemon SSH pe serverul nostru, putem ajusta politica de firewall pentru a permite traficul pentru portul de serviciu SSH lansând următoarea comandă.

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Pentru a adăuga o regulă de firewall din mers, fără a aplica regula data viitoare când serverul este pornit, utilizați sintaxa comenzii de mai jos.

sudo firewall-cmd --add-service=sshd

Dacă instalați alte servicii de rețea pe serverul dvs., cum ar fi serverul HTTP, un server de e-mail sau alte servicii de rețea, puteți adăuga reguli pentru a permite conexiunile specifice, după cum urmează.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

Pentru a enumera toate regulile de firewall, rulați comanda de mai jos.

sudo firewall-cmd --permanent --list-all

Eliminați serviciile inutile din RHEL 7

Pentru a obține o listă a tuturor serviciilor de rețea (TCP și UDP) care rulează implicit pe serverul dvs. RHEL, lansați comanda ss, așa cum este ilustrat în exemplul de mai jos.

sudo ss -tulpn

Comanda ss va dezvălui câteva servicii interesante care sunt pornite și rulează implicit în sistemul dvs., cum ar fi serviciul principal Postfix și serverul responsabil pentru protocolul NTP.

Dacă nu intenționați să configurați acest server un server de e-mail, ar trebui să opriți, să dezactivați și să eliminați demonul Postfix lansând comenzile de mai jos.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Recent, au fost raportate câteva atacuri DDOS urâte prin protocolul NTP. În cazul în care nu intenționați să configurați serverul dvs. RHEL să ruleze ca server NTP pentru ca clienții interni să sincronizeze timpul cu acest server, ar trebui să dezactivați și să eliminați complet demonul Chrony lansând comenzile de mai jos.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Din nou, rulați comanda ss pentru a identifica dacă în sistemul dvs. rulează alte servicii de rețea și dezactivați-le și eliminați-le.

sudo ss -tulpn

Pentru a oferi ora exactă pentru serverul dvs. și pentru a sincroniza ora cu un server peer de timp superior, puteți instala utilitarul ntpdate și puteți sincroniza ora cu un server NTP public, executând comenzile de mai jos.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

Pentru a automatiza comanda de sincronizare a timpului ntpdate care să fie executată în fiecare zi fără nicio intervenție a utilizatorului, programați o nouă lucrare crontab să ruleze la miezul nopții cu următorul conținut.

sudo crontab -e

Extras din fișierul Crontab:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

Asta e tot! Acum, serverul dvs. RHEL este pregătit pentru instalarea de software suplimentar necesar pentru servicii sau aplicații de rețea personalizate, cum ar fi instalarea și configurarea unui server web, a unui server de baze de date, a unui serviciu de partajare a fișierelor sau a altor aplicații specifice.

Pentru a securiza și întări în continuare serverul RHEL 7, consultați următoarele articole.

  1. Mega Ghid pentru întărirea și securizarea RHEL 7 – Partea 1
  2. Mega Ghidul pentru întărirea și securizarea RHEL 7 – Partea 2

Dacă intenționați să implementați site-uri web pe acest sistem RHEL 7, aflați cum să configurați și să configurați stiva LAMP sau stiva LEMP.