Serija RHCSA: Osiguravanje SSH-a, postavljanje imena hosta i omogućavanje mrežnih usluga - 8. dio


Kao sistem administrator često ćete morati da se prijavite na udaljene sisteme da biste izvršili razne administrativne zadatke koristeći emulator terminala. Rijetko ćete sjediti ispred pravog (fizičkog) terminala, tako da morate podesiti način da se daljinski prijavite na mašine kojima će se od vas tražiti da upravljate.

Zapravo, to je možda posljednja stvar koju ćete morati učiniti ispred fizičkog terminala. Iz sigurnosnih razloga, korištenje Telneta u ovu svrhu nije dobra ideja, jer sav promet ide preko žice u nešifriranom, običnom tekstu.

Osim toga, u ovom članku ćemo također pregledati kako konfigurirati mrežne usluge da se pokreću automatski pri pokretanju i naučiti kako postaviti mrežnu i rezoluciju imena hosta statički ili dinamički.

Instaliranje i osiguranje SSH komunikacije

Da biste se mogli daljinski prijaviti na RHEL 7 kutiju koristeći SSH, morat ćete instalirati openssh, openssh -clients i openssh-servers paketi. Sljedeća naredba ne samo da će instalirati program za udaljenu prijavu, već i alat za siguran prijenos datoteka, kao i uslužni program za daljinsko kopiranje datoteka:


yum update && yum install openssh openssh-clients openssh-servers

Imajte na umu da je dobra ideja instalirati serverske parnjake jer ćete možda htjeti koristiti istu mašinu i kao klijent i kao server u nekom trenutku.

Nakon instalacije, postoji nekoliko osnovnih stvari koje morate uzeti u obzir ako želite osigurati udaljeni pristup svom SSH serveru. Sljedeće postavke trebale bi biti prisutne u datoteci /etc/ssh/sshd_config.

1. Promijenite port na kojem će sshd daemon slušati sa 22 (podrazumevana vrijednost) na visoki port (2000 ili veći), ali prvo provjerite da se odabrani port ne koristi.

Na primjer, pretpostavimo da odaberete port 2500. Koristite netstat da provjerite da li se odabrani port koristi ili ne:


netstat -npltu | grep 2500

Ako netstat ne vrati ništa, možete sigurno koristiti port 2500 za sshd, a trebali biste promijeniti postavku porta u konfiguracijskoj datoteci na sljedeći način:


Port 2500

2. Dozvolite samo protokol 2:


Protocol 2

3. Konfigurirajte vrijeme autentifikacije na 2 minute, ne dozvolite root prijave i ograničite na minimum listu korisnika kojima je dozvoljeno da se prijave putem ssh-a:


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Ako je moguće, koristite provjeru autentičnosti baziranu na ključu umjesto lozinke:


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Ovo pretpostavlja da ste već kreirali par ključeva sa svojim korisničkim imenom na svom klijentskom računaru i kopirali ga na svoj server kao što je ovde objašnjeno.

  1. Omogući SSH prijavu bez lozinke

Konfiguriranje umrežavanja i rezolucije imena

1. Svaki administrator sistema bi trebao biti dobro upoznat sa sljedećim konfiguracijskim fajlovima za cijeli sistem:

  1. /etc/hosts se koristi za rješavanje imena <---> IP adresa u malim mrežama.

Svaki red u datoteci /etc/hosts ima sljedeću strukturu:


IP address - Hostname - FQDN

Na primjer,


192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf specificira IP adrese DNS servera i domenu pretraživanja, koja se koristi za dovršavanje datog naziva upita do potpuno kvalificiranog imena domene kada nije naveden sufiks domene.

U normalnim okolnostima, ne morate uređivati ovu datoteku jer njome upravlja sistem. Međutim, ako želite promijeniti DNS servere, imajte na umu da se morate držati sljedeće strukture u svakom redu:


nameserver - IP address

Na primjer,


nameserver 8.8.8.8

3. 3. /etc/host.conf specificira metode i redoslijed kojim se imena hostova rješavaju unutar mreže. Drugim riječima, govori razrješivaču imena koje usluge treba koristiti i kojim redoslijedom.

Iako ova datoteka ima nekoliko opcija, najčešće i osnovno podešavanje uključuje red kako slijedi:


order bind,hosts

Što ukazuje da bi razrješavač prvo trebao potražiti ime servere specificirane u resolv.conf, a zatim datoteku /etc/hosts radi razlučivanja imena.

4. /etc/sysconfig/network sadrži informacije o rutiranju i globalnom hostu za sva mrežna sučelja. Mogu se koristiti sljedeće vrijednosti:


NETWORKING=yes|no
HOSTNAME=value

Gdje vrijednost treba biti potpuno kvalificirano ime domene (FQDN).


GATEWAY=XXX.XXX.XXX.XXX

Gdje je XXX.XXX.XXX.XXX IP adresa mrežnog gatewaya.


GATEWAYDEV=value

Na mašini sa više NIC-ova, vrijednost je uređaj mrežnog prolaza, kao što je enp0s3.

5. Fajlovi unutar /etc/sysconfig/network-scripts (konfiguracijski fajlovi mrežnih adaptera).

Unutar prethodno spomenutog direktorija, naći ćete nekoliko običnih tekstualnih datoteka pod nazivom.


ifcfg-name

Gdje je naziv naziv NIC-a kako ga vraća ip link show:

Na primjer:

Osim za loopback interfejs, možete očekivati sličnu konfiguraciju za vaše NIC-ove. Imajte na umu da će neke varijable, ako su postavljene, nadjačati one prisutne u /etc/sysconfig/network za ovo određeno sučelje. Svaki red je komentarisan radi pojašnjenja u ovom članku, ali u stvarnom fajlu treba izbegavati komentare:


HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

Postavljanje imena hostova

U Red Hat Enterprise Linux 7, naredba hostnamectl se koristi i za upit i za postavljanje imena hosta sistema.

Za prikaz trenutnog imena hosta upišite:


hostnamectl status

Za promjenu imena hosta koristite


hostnamectl set-hostname [new hostname]

Na primjer,


hostnamectl set-hostname cinderella

Da bi promjene stupile na snagu morat ćete ponovo pokrenuti hostnamed demon (na taj način nećete morati da se odjavite i ponovo uključite da biste primijenili promjenu):


systemctl restart systemd-hostnamed

Osim toga, RHEL 7 također uključuje nmcli uslužni program koji se može koristiti u istu svrhu. Za prikaz imena hosta pokrenite:


nmcli general hostname

i da ga promijenite:


nmcli general hostname [new hostname]

Na primjer,


nmcli general hostname rhel7

Pokretanje mrežnih usluga pri pokretanju

Da završimo, da vidimo kako možemo osigurati da se mrežne usluge pokreću automatski pri pokretanju. Jednostavno rečeno, ovo se radi kreiranjem simboličnih veza do određenih datoteka navedenih u [Install] odjeljku konfiguracijskih datoteka usluge.

U slučaju firewalld (/usr/lib/systemd/system/firewalld.service):


[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

Da biste omogućili uslugu:


systemctl enable firewalld

S druge strane, onemogućavanje firewalld-a daje pravo na uklanjanje simboličnih veza:


systemctl disable firewalld

Zaključak

U ovom članku smo sumirali kako instalirati i osigurati konekcije putem SSH na RHEL server, kako promijeniti njegovo ime i na kraju kako osigurati da se mrežne usluge pokreću na boot. Ako primijetite da se određena usluga nije uspjela ispravno pokrenuti, možete koristiti systemctl status -l [service] i journalctl -xn da biste je riješili.

Slobodno nam javite što mislite o ovom članku pomoću obrasca za komentare ispod. Pitanja su također dobrodošla. Radujemo se Vašem odgovoru!