RHCSA-serien: Sikring af SSH, indstilling af værtsnavn og aktivering af netværkstjenester - del 8


Som systemadministrator skal du ofte logge på eksterne systemer for at udføre en række forskellige administrationsopgaver ved hjælp af en terminalemulator. Du vil sjældent sidde foran en rigtig (fysisk) terminal, så du er nødt til at indstille en måde at logge på eksternt på de maskiner, som du bliver bedt om at administrere.

Faktisk kan det være den sidste ting, du bliver nødt til at gøre foran en fysisk terminal. Af sikkerhedsmæssige årsager er det ikke en god idé at bruge Telnet til dette formål, da al trafik går gennem ledningen i ukrypteret, almindelig tekst.

Derudover gennemgår vi i denne artikel også, hvordan man konfigurerer netværkstjenester til at starte automatisk ved opstart og lærer, hvordan man opsætter netværk og værtsnavnopløsning statisk eller dynamisk.

Installation og sikring af SSH-kommunikation

For at du skal kunne logge eksternt på en RHEL 7-boks ved hjælp af SSH, bliver du nødt til at installere openssh, openssh-clients og openssh-servers-pakkerne. Følgende kommando installerer ikke kun fjernloginprogrammet, men også det sikre filoverførselsværktøj samt fjernfilskopieringsværktøjet:

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

Bemærk, at det er en god ide at installere servermodparterne, da du måske ønsker at bruge den samme maskine som både klient og server på et eller andet tidspunkt.

Efter installationen er der et par grundlæggende ting, du skal tage i betragtning, hvis du vil sikre fjernadgang til din SSH-server. Følgende indstillinger skal være til stede i filen /etc/ssh/sshd_config .

1. Skift porten, hvor sshd-dæmonen vil lytte fra 22 (standardværdien) til en høj port (2000 eller derover), men sørg først for, at den valgte port ikke bruges.

Lad os for eksempel antage, at du vælger port 2500. Brug netstat for at kontrollere, om den valgte port bruges eller ej:

# netstat -npltu | grep 2500

Hvis netstat ikke returnerer noget, kan du sikkert bruge port 2500 til sshd, og du bør ændre portindstillingen i konfigurationsfilen som følger:

Port 2500

2. Tillad kun protokol 2:

Protocol 2

3. Konfigurer autentificeringstimeout til 2 minutter, tillad ikke rodlogins og begræns til et minimum listen over brugere, der har tilladelse til at logge ind via ssh:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Brug om muligt nøglebaseret i stedet for adgangskodegodkendelse, hvis det er muligt:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Dette forudsætter, at du allerede har oprettet et nøglepar med dit brugernavn på din klientmaskine og kopieret det til din server som forklaret her.

  1. Aktivér SSH adgangskodeløst login

Konfiguration af netværk og navneløsning

1. Hver systemadministrator skal være fortrolig med følgende systemdækkende konfigurationsfiler:

  1. /etc/hosts bruges til at løse navne <---> IP'er i små netværk.

Hver linje i filen /etc/hosts har følgende struktur:

IP address - Hostname - FQDN

For eksempel,

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf specificerer IP-adresserne på DNS-serverne og søgedomænet, som bruges til at udfylde et givet forespørgselsnavn til et fuldt kvalificeret domænenavn, når der ikke leveres noget domænesuffiks.

Under normale omstændigheder behøver du ikke redigere denne fil, da den administreres af systemet. Men hvis du vil ændre DNS-servere, skal du være opmærksom på, at du skal holde dig til følgende struktur i hver linje:

nameserver - IP address

For eksempel,

nameserver 8.8.8.8

3. 3. /etc/host.conf angiver metoderne og rækkefølgen, hvormed værtsnavne løses i et netværk. Med andre ord fortæller navnet resolver hvilke tjenester der skal bruges og i hvilken rækkefølge.

Selvom denne fil har flere muligheder, inkluderer den mest almindelige og grundlæggende opsætning en linje som følger:

order bind,hosts

Hvilket indikerer, at opløseren først skal kigge i de navneservere, der er angivet i resolv.conf og derefter til /etc/hosts -filen til navneløsning.

4. /etc/sysconfig/network indeholder routing og global værtsinformation for alle netværksgrænseflader. Følgende værdier kan anvendes:

NETWORKING=yes|no
HOSTNAME=value

Hvor værdien skal være det fuldt kvalificerede domænenavn (FQDN).

GATEWAY=XXX.XXX.XXX.XXX

Hvor XXX.XXX.XXX.XXX er IP-adressen på netværkets gateway.

GATEWAYDEV=value

I en maskine med flere NIC'er er værdien gatewayenheden, såsom enp0s3.

5. Filer inde i /etc/sysconfig/network-scripts (konfigurationsfiler til netværkskort).

Inde i den tidligere nævnte mappe finder du flere navngivne almindelige tekstfiler.

ifcfg-name

Hvor navnet er navnet på NIC som returneret af ip link viser:

For eksempel:

Bortset fra loopback-grænsefladen kan du forvente en lignende konfiguration til dine NIC'er. Bemærk, at nogle variabler, hvis de er indstillet, tilsidesætter dem, der findes i /etc/sysconfig/network for denne særlige grænseflade. Hver linje er kommenteret til afklaring i denne artikel, men i selve filen skal du undgå kommentarer:

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

Indstilling af værtsnavne

I Red Hat Enterprise Linux 7 bruges hostnamectl-kommandoen til både at forespørge og indstille systemets værtsnavn.

For at få vist det aktuelle værtsnavn, skriv:

# hostnamectl status

Brug for at ændre værtsnavnet

# hostnamectl set-hostname [new hostname]

For eksempel,

# hostnamectl set-hostname cinderella

For at ændringerne skal træde i kraft, skal du genstarte den hostnavne-dæmon (på den måde behøver du ikke logge af og igen for at anvende ændringen):

# systemctl restart systemd-hostnamed

Derudover inkluderer RHEL 7 også nmcli-værktøjet, der kan bruges til det samme formål. For at vise værtsnavnet skal du køre:

# nmcli general hostname

og for at ændre det:

# nmcli general hostname [new hostname]

For eksempel,

# nmcli general hostname rhel7

Starter netværkstjenester ved opstart

For at afslutte, lad os se, hvordan vi kan sikre, at netværkstjenester startes automatisk ved opstart. Enkelt sagt gøres dette ved at oprette symlinks til bestemte filer, der er specificeret i afsnittet [Install] i servicekonfigurationsfilerne.

I tilfælde af firewalld (/usr/lib/systemd/system/firewalld.service):

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

Sådan aktiveres tjenesten:

# systemctl enable firewalld

På den anden side giver deaktivering af firewalld ret til at fjerne symlinks:

# systemctl disable firewalld

Konklusion

I denne artikel har vi opsummeret, hvordan man installerer og sikrer forbindelser via SSH til en RHEL-server, hvordan man ændrer navn og endelig hvordan man sikrer, at netværkstjenester startes ved opstart. Hvis du bemærker, at en bestemt tjeneste ikke kan starte korrekt, kan du bruge systemctl status -l [service] og journalctl -xn til fejlfinding af den.

Du er velkommen til at fortælle os, hvad du synes om denne artikel ved hjælp af nedenstående kommentarformular. Spørgsmål er også velkomne. Vi ser frem til at høre fra dig!