Početno podešavanje i konfiguracije servera na RHEL 7


U ovom vodiču ćemo razgovarati o prvim koracima konfiguracije o kojima morate voditi računa nakon nove instalacije Red Hat Enterprise Linuxa 7 na golom metalnom serveru ili na virtuelnom privatnom serveru.

Zahtjevi

  1. RHEL 7 Minimalna instalacija

Važno: Korisnici CentOS 7, mogu pratiti ovaj članak kako bi izvršili početno podešavanje servera na CentOS 7.

Ažurirajte sistem RHEL 7

U prvom koraku prijavite se na konzolu vašeg RHEL servera s računom sa root privilegijama ili direktno kao root i pokrenite naredbu ispod kako biste u potpunosti ažurirali komponente vašeg sistema, kao što su instalirani paketi, kernel ili primijeniti druge sigurnosne zakrpe.

yum check-update
yum update

Da biste uklonili sve lokalno preuzete pakete i druge povezane YUM keš memorije, izvršite naredbu ispod.

yum clean all

Instalirajte sistemske uslužne programe na RHEL 7

Ovi sljedeći uslužni programi mogu se pokazati korisnima za svakodnevnu administraciju sistema: nano (uređivač teksta koji zamjenjuje vi editor), wget, curl (uslužni programi koji se koriste za preuzimanje paketa uglavnom preko mreže) net-tools, lsof (uslužni programi za upravljanje lokalnim umrežavanjem) i bash-completion (autocomplete komandne linije).

Instalirajte ih sve u jednom trenutku tako što ćete izvršiti naredbu ispod.


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

Postavite umrežavanje u RHEL 7

RHEL 7 ima širok spektar alata koji se mogu koristiti za konfiguriranje i upravljanje umrežavanjem, od ručnog uređivanja mrežne konfiguracijske datoteke do korištenja naredbi kao što su ip, ifconfig, nmtui, nmcli ili route.

Najlakši uslužni program koji početnik može koristiti za upravljanje i promjenu mrežnih konfiguracija je nmtui grafička komandna linija.

Da biste promijenili ime sistemskog hosta putem nmtui uslužnog programa, izvršite naredbu nmtui-hostname, postavite ime vašeg računala i pritisnite OK da završite, kao što je prikazano na slici ispod.


nmtui-hostname

Da biste upravljali mrežnim interfejsom, izvršite naredbu nmtui-edit, odaberite interfejs koji želite da uredite i izaberite edit iz desnog menija, kao što je prikazano na slici ispod.

Nakon što ste u grafičkom interfejsu koji pruža uslužni program nmtui, možete podesiti IP postavke mrežnog interfejsa kao što je ilustrovano na snimku ekrana ispod. Kada završite, idite na OK pomoću tastera [tab] da sačuvate konfiguraciju i izađete.

Da biste primijenili novu konfiguraciju mrežnog sučelja, izvršite naredbu nmtui-connect, odaberite sučelje kojim želite upravljati i pritisnite opciju Deaktiviraj/Aktiviraj za dekomisioniranje i podizanje interfejs sa IP postavkama, kao što je prikazano na snimcima ekrana ispod.


nmtui-connect

Da biste vidjeli postavke mrežnog interfejsa, možete pregledati sadržaj datoteke interfejsa ili možete izdati donje naredbe.


ifconfig enp0s3
ip a
ping -c2 google.com

Ostali korisni uslužni programi koji se mogu koristiti za upravljanje brzinom, stanjem veze ili dobijanje informacija o mrežnim interfejsima mašine su ethtool i mii-tool.


ethtool enp0s3
mii-tool enp0s3

Kreirajte novi korisnički nalog

U sljedećem koraku, dok ste prijavljeni kao root na vaš server, kreirajte novog korisnika pomoću naredbe ispod. Ovaj korisnik će se kasnije koristiti za prijavu na vaš sistem i obavljanje administrativnih zadataka.

adduser tecmint_user

Nakon što ste dodali korisnika koristeći gornju naredbu, postavite jaku lozinku za ovog korisnika izdavanjem naredbe ispod.

passwd tecmint_user

U slučajevima kada želite da prisilite ovog novog korisnika da promijeni svoju lozinku pri prvom pokušaju prijave, izvršite naredbu ispod.

chage -d0 tecmint_user

Ovaj novi korisnički nalog sa za sada ima redovne privilegije naloga i ne može obavljati administrativne zadatke putem sudo komande.

Kako biste izbjegli korištenje root naloga za obavljanje administrativnih privilegija, dodijelite ovom novom korisniku administrativne privilegije dodavanjem korisnika u sistemsku grupu “wheel”.

Korisnicima koji pripadaju grupi “wheel” je dozvoljeno, prema zadanim postavkama u RHEL-u, da pokreću komande sa root privilegijama korištenjem uslužnog programa sudo prije pisanja naredbe potrebne za izvršenje.

Na primjer, da dodate korisnika “tecmint_user ” u grupu “wheel ”, izvršite naredbu ispod.

usermod -aG wheel tecmint_user

Nakon toga, prijavite se na sistem s novim korisnikom i pokušajte ažurirati sistem putem naredbe 'sudo yum update' kako biste testirali da li korisnik ima odobrena root ovlaštenja.

su - tecmint_user
sudo yum update

Konfigurirajte provjeru autentičnosti SSH javnog ključa na RHEL 7

U sljedećem koraku kako biste povećali sigurnost vašeg RHEL servisa, konfigurirajte SSH provjeru autentičnosti javnog ključa za novog korisnika. Da biste generirali SSH par ključeva, javni i privatni ključ, izvršite sljedeću naredbu na konzoli vašeg servera. Provjerite jeste li prijavljeni na sistem sa korisnikom kojem postavljate SSH ključ.

su - tecmint_user
ssh-keygen -t RSA

Dok se ključ generira, od vas će biti zatraženo da dodate lozinku kako biste osigurali ključ. Možete unijeti jaku passphrase ili odabrati da ostavite lozinku praznu ako želite automatizirati zadatke putem SSH servera.

Nakon što je SSH ključ generiran, kopirajte par javnih ključeva na udaljeni server izvršavanjem donje naredbe. Da biste instalirali javni ključ na udaljeni SSH server, trebat će vam korisnički račun koji ima vjerodajnice za prijavu na taj server.

ssh-copy-id [email 

Sada biste trebali pokušati da se prijavite putem SSH-a na udaljeni server koristeći privatni ključ kao metod provjere autentičnosti. Trebali biste biti u mogućnosti da se prijavite automatski, a da SSH server ne traži lozinku.

ssh [email 

Da biste vidjeli sadržaj vašeg javnog SSH ključa ako želite ručno instalirati ključ na udaljeni SSH server, izdajte sljedeću naredbu.

cat ~/.ssh/id_rsa

Sigurnosni SSH na RHEL 7

Da biste osigurali SSH demon i onemogućili udaljeni SSH pristup root računu putem lozinke ili ključa, otvorite glavnu konfiguracijsku datoteku SSH servera i napravite sljedeće promjene.

sudo vi /etc/ssh/sshd_config

Potražite redak #PermitRootLogin yes, dekomentirajte red tako što ćete ukloniti znak # (hashtag) s početka reda i modificirati red da izgleda kao što je prikazano na donjoj slici izvod.

PermitRootLogin no

Nakon toga, ponovo pokrenite SSH server da biste primijenili nove postavke i testirajte konfiguraciju tako što ćete se pokušati prijaviti na ovaj server pomoću root naloga. Pristup root nalogu preko SSH-a bi do sada trebao biti ograničen.

sudo systemctl restart sshd

Postoje situacije u kojima ćete možda htjeti automatski prekinuti sve udaljene SSH veze sa vašim serverom nakon perioda neaktivnosti.

Da biste omogućili ovu funkciju na cijelom sistemu, izvršite donju naredbu, koja dodaje TMOUT bash varijablu u glavnu datoteku bashrc i prisiljava svaku SSH konekciju da bude prekinuta ili prekinuta- izlazi nakon 5 minuta neaktivnosti.

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

Pokrenite komandu tail da provjerite da li je varijabla ispravno dodana na kraj datoteke /etc/bashrc. Sve naredne SSH veze će se automatski zatvoriti nakon 5 minuta neaktivnosti od sada.

tail /etc/bashrc

Na slici ispod, udaljena SSH sesija sa drupal mašine na RHEL server se automatski odjavljuje nakon 5 minuta.

Konfigurirajte zaštitni zid na RHEL 7

U sljedećem koraku konfigurirajte firewall kako biste dodatno osigurali sistem na nivou mreže. RHEL 7 se isporučuje sa Firewalld aplikacijom za upravljanje iptables pravilima na serveru.

Prvo, uvjerite se da je firewall pokrenut u vašem sistemu izdavanjem donje naredbe. Ako je Firewalld daemon zaustavljen, trebali biste ga pokrenuti sljedećom naredbom.

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

Nakon što je zaštitni zid omogućen i pokrenut u vašem sistemu, možete koristiti firewall-cmd uslužni program komandne linije da postavite informacije o politici zaštitnog zida i dozvolite promet na neke specifične mrežne portove, kao što je SSH daemon, uspostavljena veza na interni web server ili druge povezane mrežne usluge.

Budući da trenutno samo pokrećemo SSH demon na našem serveru, možemo podesiti politiku zaštitnog zida da dozvoli promet za SSH servisni port izdavanjem sljedeće naredbe.

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

Da biste dodali pravilo zaštitnog zida u hodu, bez primjene pravila sljedeći put kada se server pokrene, koristite donju sintaksu komande.

sudo firewall-cmd --add-service=sshd

Ako instalirate druge mrežne usluge na vašem serveru, kao što su HTTP server, mail server ili druge mrežne usluge, možete dodati pravila koja će dozvoliti određene veze na sljedeći način.

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

Za popis svih pravila zaštitnog zida pokrenite naredbu ispod.

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

Uklonite nepotrebne usluge u RHEL 7

Da biste dobili listu svih mrežnih usluga (TCP i UDP) koji se prema zadanim postavkama izvršavaju na vašem RHEL serveru, izdajte naredbu ss, kao što je prikazano u primjeru ispod.

sudo ss -tulpn

Komanda ss će otkriti neke zanimljive servise koji su pokrenuti i pokrenuti prema zadanim postavkama u vašem sistemu, kao što su Postfix master servis i server odgovoran za NTP protokol.

Ako ne planirate da konfigurišete ovaj server kao server pošte, trebalo bi da zaustavite, onemogućite i uklonite Postfix demon izdavanjem naredbi ispod.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Nedavno su prijavljeni neki gadni DDOS napadi preko NTP protokola. U slučaju da ne planirate da konfigurišete svoj RHEL server da radi kao NTP server kako bi interni klijenti sinhronizovali vreme sa ovim serverom, trebalo bi da potpuno onemogućite i uklonite Chrony daemon izdavanjem naredbi ispod.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Opet, pokrenite naredbu ss da identifikujete da li su druge mrežne usluge pokrenute u vašem sistemu i onemogućite ih i uklonite.

sudo ss -tulpn

Da biste obezbedili tačno vreme za vaš server i sinhronizovali vreme sa višim serverom, možete instalirati uslužni program ntpdate i sinhronizovati vreme sa javnim NTP serverom, izvršavanjem naredbi ispod.

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

Za automatizaciju naredbe ntpdate za sinhronizaciju vremena koja će se izvršavati svaki dan bez ikakve intervencije korisnika, zakažite novi crontab posao koji će se pokrenuti u ponoć sa sljedećim sadržajem.

sudo crontab -e

Izvod iz Crontab fajla:

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

To je sve! Sada je vaš RHEL server spreman za instaliranje dodatnog softvera potrebnog za prilagođene mrežne usluge ili aplikacije, kao što je instalacija i konfiguracija web servera, servera baze podataka, servisa za dijeljenje datoteka ili drugih specifičnih aplikacija.

Da biste dodatno osigurali i ojačali RHEL 7 server, pogledajte ove sljedeće članke.

  1. Mega vodič za učvršćivanje i sigurnost RHEL 7 – 1. dio
  2. Mega vodič za učvršćivanje i sigurnost RHEL 7 – 2. dio

Ako planirate implementirati web stranice na ovom RHEL 7 sistemu, naučite kako postaviti i konfigurirati LAMP stog ili LEMP stog.