Serija RHCSA: Zaščita SSH, nastavitev imena gostitelja in omogočanje omrežnih storitev - 8. del


Kot skrbnik sistema se boste pogosto morali prijaviti v oddaljene sisteme za izvajanje različnih skrbniških nalog z uporabo emulatorja terminala. Redko boste sedeli pred resničnim (fizičnim) terminalom, zato morate nastaviti način oddaljene prijave na stroje, s katerimi boste morali upravljati.

Pravzaprav je to morda zadnja stvar, ki jo boste morali narediti pred fizičnim terminalom. Iz varnostnih razlogov uporaba Telneta v ta namen ni dobra ideja, saj ves promet poteka po žici v nešifriranem, navadnem besedilu.

Poleg tega bomo v tem članku pregledali tudi, kako konfigurirati omrežne storitve, da se samodejno zaženejo ob zagonu, in se naučili, kako statično ali dinamično nastaviti ločljivost omrežja in imen gostiteljev.

Namestitev in zavarovanje SSH komunikacije

Da se boste lahko na daljavo prijavili v polje RHEL 7 s pomočjo SSH, boste morali namestiti pakete openssh, openssh-client in openssh-servers. Naslednji ukaz ne bo namestil le programa za oddaljeno prijavo, temveč tudi orodje za varen prenos datotek in pripomoček za oddaljeno kopiranje datotek:

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

Upoštevajte, da je dobro namestiti ustrezne strežnike, saj boste morda kdaj želeli uporabiti isti računalnik kot odjemalec in strežnik.

Po namestitvi je nekaj osnovnih stvari, ki jih morate upoštevati, če želite zagotoviti oddaljen dostop do SSH strežnika. V datoteki /etc/ssh/sshd_config bi morale biti naslednje nastavitve.

1. Spremenite vrata, na katerih bo poslušal demon sshd, z 22 (privzeta vrednost) na visoka vrata (2000 ali več), vendar najprej preverite, ali izbrana vrata niso uporabljena.

Recimo, da ste na primer izbrali vrata 2500. Uporabite netstat, da preverite, ali se izbrana vrata uporabljajo:

# netstat -npltu | grep 2500

Če netstat ne vrne ničesar, lahko varno uporabite vrata 2500 za sshd in nastavitev vrat v konfiguracijski datoteki spremenite na naslednji način:

Port 2500

2. Dovoli samo protokol 2:

Protocol 2

3. Konfigurirajte čas preverjanja pristnosti na 2 minuti, ne dovolite korenskih prijav in omejite na minimum seznam uporabnikov, ki se lahko prijavijo prek ssh:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Če je mogoče, namesto preverjanja pristnosti gesla uporabite ključ:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

To predpostavlja, da ste na odjemalskem računalniku že ustvarili par ključev z vašim uporabniškim imenom in ga kopirali na strežnik, kot je razloženo tukaj.

  1. Omogočite prijavo brez gesla SSH

Konfiguriranje omrežja in ločljivosti imen

1. Vsak sistemski skrbnik bi moral biti dobro seznanjen z naslednjimi sistemsko konfiguracijskimi datotekami:

  1. /etc/hosts se uporablja za razreševanje imen <---> IP-jev v majhnih omrežjih.

Vsaka vrstica v datoteki /etc/hosts ima naslednjo strukturo:

IP address - Hostname - FQDN

Na primer

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf določa naslove IP strežnikov DNS in iskalno domeno, ki se uporablja za izpolnjevanje določenega imena poizvedbe do popolnoma kvalificiranega imena domene, če ni podana nobena pripona domene.

V običajnih okoliščinah vam ni treba urejati te datoteke, saj jo upravlja sistem. Če pa želite spremeniti strežnike DNS, morate v vsaki vrstici upoštevati naslednjo strukturo:

nameserver - IP address

Na primer

nameserver 8.8.8.8

3. 3. /etc/host.conf določa metode in vrstni red razreševanja imen gostiteljev znotraj omrežja. Z drugimi besedami, razreševalniku imen pove, katere storitve naj uporabljajo in v kakšnem vrstnem redu.

Čeprav ima ta datoteka več možnosti, najpogostejša in osnovna nastavitev vključuje naslednjo vrstico:

order bind,hosts

Kar pomeni, da mora razreševalnik najprej poiskati strežnike imen, določene v resolv.conf , nato pa datoteko /etc/hosts za razrešitev imen.

4. /etc/sysconfig/network vsebuje usmerjanje in informacije o globalnem gostitelju za vse omrežne vmesnike. Uporabijo se lahko naslednje vrednosti:

NETWORKING=yes|no
HOSTNAME=value

Kjer bi morala biti vrednost popolnoma kvalificirano ime domene (FQDN).

GATEWAY=XXX.XXX.XXX.XXX

Kjer je XXX.XXX.XXX.XXX naslov IP prehoda omrežja.

GATEWAYDEV=value

V napravi z več NIC-ji je vrednost prehodna naprava, kot je enp0s3.

5. Datoteke v /etc/sysconfig/network-scripts (konfiguracijske datoteke omrežnih vmesnikov).

V prej omenjenem imeniku boste našli več poimenovanih navadnih besedilnih datotek.

ifcfg-name

Kjer je ime ime NIC, ki ga vrne ip link show:

Na primer:

Razen za povratni vmesnik lahko pričakujete podobno konfiguracijo za vaše NIC-je. Upoštevajte, da bodo nekatere spremenljivke, če so nastavljene, preglasile tiste, ki so prisotne v /etc/sysconfig/network za ta vmesnik. Vsaka vrstica je pojasnjena v tem članku, v dejanski datoteki pa se izogibajte komentarjem:

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

Nastavitev imen gostiteljev

V Red Hat Enterprise Linux 7 se ukaz hostnamectl uporablja tako za poizvedbo kot za nastavitev imena gostitelja sistema.

Če želite prikazati trenutno ime gostitelja, vnesite:

# hostnamectl status

Če želite spremeniti ime gostitelja, uporabite

# hostnamectl set-hostname [new hostname]

Na primer

# hostnamectl set-hostname cinderella

Da bodo spremembe začele veljati, boste morali znova zagnati demona z imenom gostitelja (tako se vam za uveljavitev spremembe ne bo treba odjaviti in znova vklopiti):

# systemctl restart systemd-hostnamed

Poleg tega RHEL 7 vključuje tudi pripomoček nmcli, ki se lahko uporablja za isti namen. Če želite prikazati ime gostitelja, zaženite:

# nmcli general hostname

in ga spremeniti:

# nmcli general hostname [new hostname]

Na primer

# nmcli general hostname rhel7

Zagon omrežnih storitev pri zagonu

Za zaključek poglejmo, kako lahko zagotovimo, da se omrežne storitve samodejno zaženejo ob zagonu. Preprosto rečeno, to naredimo tako, da ustvarimo simbolne povezave do določenih datotek, določenih v razdelku [Namesti] v konfiguracijskih datotekah storitve.

V primeru požarnega zidu (/usr/lib/systemd/system/firewalld.service):

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

Če želite omogočiti storitev:

# systemctl enable firewalld

Po drugi strani pa onemogočanje požarnega zidu omogoča odstranitev povezav:

# systemctl disable firewalld

Zaključek

V tem članku smo povzeli, kako namestiti in zavarovati povezave prek SSH s strežnikom RHEL, kako spremeniti njegovo ime in na koncu, kako zagotoviti, da se omrežne storitve zaženejo ob zagonu. Če opazite, da se določena storitev ni zagnala pravilno, lahko za odpravljanje težav uporabite systemctl status -l [service] in journalctl -xn.

Sporočite nam, kaj mislite o tem članku, tako da uporabite spodnji obrazec za komentar. Tudi vprašanja so dobrodošla. Veselimo se vaših odzivov!