Vyhledávání na webu

Řada RHCSA: Zabezpečení SSH, nastavení názvu hostitele a povolení síťových služeb – část 8


Jako správce systému se často budete muset přihlásit ke vzdáleným systémům, abyste mohli provádět různé administrativní úkoly pomocí emulátoru terminálu. Málokdy budete sedět před skutečným (fyzickým) terminálem, takže musíte nastavit způsob, jak se vzdáleně přihlásit k počítačům, které budete požádáni o správu.

Ve skutečnosti to může být poslední věc, kterou budete muset udělat před fyzickým terminálem. Z bezpečnostních důvodů není použití Telnetu pro tento účel dobrý nápad, protože veškerý provoz prochází kabelem v nezašifrovaném prostém textu.

Kromě toho se v tomto článku také podíváme na to, jak nakonfigurovat síťové služby tak, aby se automaticky spouštěly při bootování, a naučíme se, jak nastavit rozlišení sítě a názvu hostitele staticky nebo dynamicky.

Instalace a zabezpečení komunikace SSH

Abyste se mohli vzdáleně přihlásit k boxu RHEL 7 pomocí SSH, budete si muset nainstalovat openssh, openssh -clients a openssh-servers. Následující příkaz nejen nainstaluje program pro vzdálené přihlášení, ale také nástroj pro bezpečný přenos souborů a nástroj pro vzdálené kopírování souborů:


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

Všimněte si, že je dobré nainstalovat serverové protějšky, protože možná budete chtít v určitém okamžiku používat stejný počítač jako klient i server.

Po instalaci je několik základních věcí, které musíte vzít v úvahu, pokud chcete zabezpečit vzdálený přístup k vašemu SSH serveru. Následující nastavení by měla být přítomna v souboru /etc/ssh/sshd_config.

1. Změňte port, na kterém bude démon sshd naslouchat, z 22 (výchozí hodnota) na vysoký port (2000 nebo vyšší), ale nejprve se ujistěte, že zvolený port není používán.

Předpokládejme například, že zvolíte port 2500. Chcete-li zkontrolovat, zda je zvolený port používán nebo ne, použijte netstat:


netstat -npltu | grep 2500

Pokud netstat nic nevrací, můžete bezpečně použít port 2500 pro sshd a měli byste změnit nastavení portu v konfiguračním souboru následovně:


Port 2500

2. Povolit pouze protokol 2:


Protocol 2

3. Nakonfigurujte časový limit ověřování na 2 minuty, nepovolte přihlášení uživatele root a omezte na minimum seznam uživatelů, kteří se mohou přihlásit přes ssh:


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Pokud je to možné, použijte místo ověřování pomocí hesla:


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

To předpokládá, že jste již vytvořili pár klíčů se svým uživatelským jménem na vašem klientském počítači a zkopírovali jej na váš server, jak je vysvětleno zde.

  1. Povolit přihlašování SSH bez hesla

Konfigurace sítě a překlad názvů

1. Každý správce systému by měl dobře znát následující konfigurační soubory celého systému:

  1. /etc/hosts se používá k překladu názvů <---> IP adres v malých sítích.

Každý řádek v souboru /etc/hosts má následující strukturu:


IP address - Hostname - FQDN

Například,


192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf určuje IP adresy serverů DNS a vyhledávací doménu, která se používá k dokončení daného názvu dotazu na plně kvalifikovaný název domény, když není poskytnuta žádná doménová přípona.

Za normálních okolností nemusíte tento soubor upravovat, protože je spravován systémem. Pokud však chcete změnit servery DNS, uvědomte si, že se musíte v každém řádku držet následující struktury:


nameserver - IP address

Například,


nameserver 8.8.8.8

3. 3. /etc/host.conf specifikuje metody a pořadí, podle kterých jsou názvy hostitelů v síti rozlišovány. Jinými slovy říká překladači názvů, které služby a v jakém pořadí má použít.

Ačkoli tento soubor má několik možností, nejběžnější a základní nastavení obsahuje následující řádek:


order bind,hosts

Což znamená, že resolver by se měl nejprve podívat na jmenné servery specifikované v resolv.conf a poté do souboru /etc/hosts pro rozlišení jmen.

4. /etc/sysconfig/network obsahuje informace o směrování a globálním hostiteli pro všechna síťová rozhraní. Mohou být použity následující hodnoty:


NETWORKING=yes|no
HOSTNAME=value

Hodnota by měla být plně kvalifikovaný název domény (FQDN).


GATEWAY=XXX.XXX.XXX.XXX

Kde XXX.XXX.XXX.XXX je adresa IP brány sítě.


GATEWAYDEV=value

V počítači s více síťovými kartami je hodnota brána, jako je například enp0s3.

5. Soubory v /etc/sysconfig/network-scripts (soubory konfigurace síťových adaptérů).

Uvnitř výše zmíněného adresáře najdete několik pojmenovaných souborů ve formátu prostého textu.


ifcfg-name

Kde name je název síťové karty vrácený IP odkaz zobrazit:

Například:

Kromě rozhraní loopback můžete očekávat podobnou konfiguraci pro vaše síťové karty. Všimněte si, že některé proměnné, pokud jsou nastaveny, přepíší ty, které jsou v /etc/sysconfig/network pro toto konkrétní rozhraní. Každý řádek je v tomto článku za účelem objasnění komentován, ale ve skutečném souboru byste se měli vyhnout komentářům:


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

Nastavení názvů hostitelů

V Red Hat Enterprise Linux 7 se příkaz hostnamectl používá k dotazování a nastavení názvu hostitele systému.

Chcete-li zobrazit aktuální název hostitele, zadejte:


hostnamectl status

Chcete-li změnit název hostitele, použijte


hostnamectl set-hostname [new hostname]

Například,


hostnamectl set-hostname cinderella

Aby se změny projevily, budete muset restartovat démona hostnamed (takto se nebudete muset odhlašovat a znovu přihlašovat, abyste mohli změnu použít):


systemctl restart systemd-hostnamed

Kromě toho RHEL 7 obsahuje také nástroj nmcli, který lze použít ke stejnému účelu. Chcete-li zobrazit název hostitele, spusťte:


nmcli general hostname

a změnit to:


nmcli general hostname [new hostname]

Například,


nmcli general hostname rhel7

Spuštění síťových služeb při spouštění

Na závěr se podívejme, jak můžeme zajistit automatické spouštění síťových služeb při bootování. Jednoduše řečeno, lze to provést vytvořením symbolických odkazů na určité soubory uvedené v části [Instalovat] konfiguračních souborů služby.

V případě firewalld (/usr/lib/systemd/system/firewalld.service):


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

Chcete-li službu povolit:


systemctl enable firewalld

Na druhou stranu deaktivace firewallu opravňuje k odstranění symbolických odkazů:


systemctl disable firewalld

Závěr

V tomto článku jsme shrnuli, jak nainstalovat a zabezpečit připojení přes SSH k serveru RHEL, jak změnit jeho název a nakonec, jak zajistit, aby se síťové služby spouštěly na bota. Pokud si všimnete, že se určitá služba nespustila správně, můžete pomocí systemctl status -l [služba] a journalctl -xn problém vyřešit.

Neváhejte a dejte nám vědět, co si o tomto článku myslíte, pomocí formuláře níže. Dotazy jsou také vítány. Těšíme se na setkání s Vámi!