Wyszukiwanie w witrynie

Seria RHCSA: Zabezpieczanie SSH, ustawianie nazwy hosta i włączanie usług sieciowych - część 8


Jako administrator systemu często będziesz musiał logować się do systemów zdalnych, aby wykonywać różne zadania administracyjne za pomocą emulatora terminala. Rzadko będziesz siedział przed prawdziwym (fizycznym) terminalem, dlatego musisz skonfigurować sposób zdalnego logowania się na komputerach, którymi będziesz proszony o zarządzanie.

W rzeczywistości może to być ostatnia rzecz, którą będziesz musiał zrobić przed fizycznym terminalem. Ze względów bezpieczeństwa używanie w tym celu Telnetu nie jest dobrym pomysłem, ponieważ cały ruch odbywa się w postaci niezaszyfrowanego, zwykłego tekstu.

Ponadto w tym artykule omówimy również, jak skonfigurować usługi sieciowe, aby uruchamiały się automatycznie podczas rozruchu, oraz dowiemy się, jak skonfigurować rozpoznawanie sieci i nazw hostów statycznie lub dynamicznie.

Instalowanie i zabezpieczanie komunikacji SSH

Aby móc zalogować się zdalnie do urządzenia RHEL 7 przy użyciu protokołu SSH, musisz zainstalować pakiety openssh, openssh -clients i pakiety openssh-servers. Poniższe polecenie nie tylko zainstaluje program do zdalnego logowania, ale także narzędzie do bezpiecznego przesyłania plików, a także narzędzie do zdalnego kopiowania plików:


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

Pamiętaj, że dobrym pomysłem jest zainstalowanie odpowiedników serwera, ponieważ w pewnym momencie możesz chcieć używać tego samego komputera jako klienta i serwera.

Po instalacji musisz wziąć pod uwagę kilka podstawowych rzeczy, jeśli chcesz zabezpieczyć zdalny dostęp do swojego serwera SSH. Poniższe ustawienia powinny znajdować się w pliku /etc/ssh/sshd_config.

1. Zmień port, na którym demon sshd będzie nasłuchiwał, z 22 (wartość domyślna) na wyższy port (2000 lub większy), ale najpierw upewnij się, że wybrany port nie jest używany.

Załóżmy na przykład, że wybierasz port 2500. Użyj netstat, aby sprawdzić, czy wybrany port jest używany, czy nie:


netstat -npltu | grep 2500

Jeśli netstat nic nie zwróci, możesz bezpiecznie użyć portu 2500 dla sshd i powinieneś zmienić ustawienie Port w pliku konfiguracyjnym w następujący sposób:


Port 2500

2. Zezwalaj tylko na protokół 2:


Protocol 2

3. Skonfiguruj limit czasu uwierzytelniania na 2 minuty, nie zezwalaj na logowanie jako root i ogranicz do minimum listę użytkowników, którzy mogą logować się przez ssh:


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Jeśli to możliwe, użyj uwierzytelniania opartego na kluczu zamiast hasła:


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Zakłada się, że utworzyłeś już parę kluczy ze swoją nazwą użytkownika na komputerze klienckim i skopiowałeś ją na serwer, jak wyjaśniono tutaj.

  1. Włącz logowanie bez hasła SSH

Konfigurowanie sieci i rozpoznawanie nazw

1. Każdy administrator systemu powinien dobrze znać następujące ogólnosystemowe pliki konfiguracyjne:

  1. /etc/hosts służy do rozpoznawania nazw <---> adresów IP w małych sieciach.

Każda linia w pliku /etc/hosts ma następującą strukturę:


IP address - Hostname - FQDN

Na przykład,


192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf określa adresy IP serwerów DNS oraz domenę wyszukiwania, która służy do uzupełniania danej nazwy zapytania do w pełni kwalifikowanej nazwy domeny, gdy nie podano żadnego sufiksu domeny.

W normalnych okolicznościach nie trzeba edytować tego pliku, ponieważ zarządza nim system. Jeśli jednak chcesz zmienić serwery DNS, pamiętaj, że musisz trzymać się następującej struktury w każdym wierszu:


nameserver - IP address

Na przykład,


nameserver 8.8.8.8

3. 3. /etc/host.conf określa metody i kolejność, według której nazwy hostów są rozpoznawane w sieci. Innymi słowy, informuje mechanizm rozpoznawania nazw, jakich usług ma użyć i w jakiej kolejności.

Chociaż ten plik ma kilka opcji, najczęstsza i podstawowa konfiguracja zawiera następującą linię:


order bind,hosts

Co oznacza, że mechanizm rozpoznawania nazw powinien najpierw zajrzeć do serwerów nazw określonych w resolv.conf, a następnie do pliku /etc/hosts w celu rozpoznania nazw.

4. /etc/sysconfig/network zawiera informacje o routingu i hostach globalnych dla wszystkich interfejsów sieciowych. Można zastosować następujące wartości:


NETWORKING=yes|no
HOSTNAME=value

Gdzie wartością powinna być w pełni kwalifikowana nazwa domeny (FQDN).


GATEWAY=XXX.XXX.XXX.XXX

Gdzie XXX.XXX.XXX.XXX to adres IP bramy sieciowej.


GATEWAYDEV=value

Na komputerze z wieloma kartami sieciowymi value jest urządzeniem bramy, takim jak enp0s3.

5. Pliki w /etc/sysconfig/network-scripts (pliki konfiguracyjne kart sieciowych).

Wewnątrz wspomnianego wcześniej katalogu znajdziesz kilka plików tekstowych o nazwach.


ifcfg-name

Gdzie nazwa to nazwa karty sieciowej zwrócona przez ip link show:

Na przykład:

Poza interfejsem loopback możesz spodziewać się podobnej konfiguracji kart sieciowych. Zauważ, że niektóre zmienne, jeśli są ustawione, zastąpią te obecne w /etc/sysconfig/network dla tego konkretnego interfejsu. W tym artykule każda linia jest opatrzona komentarzem w celu wyjaśnienia, ale w samym pliku należy unikać komentarzy:


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

Ustawianie nazw hostów

W Red Hat Enterprise Linux 7 polecenie hostnamectl służy zarówno do wysyłania zapytań, jak i do ustawiania nazwy hosta systemu.

Aby wyświetlić bieżącą nazwę hosta, wpisz:


hostnamectl status

Aby zmienić nazwę hosta, użyj


hostnamectl set-hostname [new hostname]

Na przykład,


hostnamectl set-hostname cinderella

Aby zmiany zaczęły obowiązywać, musisz zrestartować demona hostnamed (dzięki temu nie będziesz musiał się wylogowywać i ponownie logować, aby zastosować zmianę):


systemctl restart systemd-hostnamed

Ponadto RHEL 7 zawiera także narzędzie nmcli, którego można używać w tym samym celu. Aby wyświetlić nazwę hosta, uruchom:


nmcli general hostname

i żeby to zmienić:


nmcli general hostname [new hostname]

Na przykład,


nmcli general hostname rhel7

Uruchamianie usług sieciowych podczas rozruchu

Na koniec zobaczmy, jak możemy zapewnić automatyczne uruchamianie usług sieciowych podczas uruchamiania systemu. Mówiąc prościej, odbywa się to poprzez utworzenie dowiązań symbolicznych do określonych plików określonych w sekcji [Install] plików konfiguracyjnych usługi.

W przypadku firewalld (/usr/lib/systemd/system/firewalld.service):


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

Aby włączyć usługę:


systemctl enable firewalld

Z kolei wyłączenie firewalla uprawnia do usunięcia dowiązań symbolicznych:


systemctl disable firewalld

Wniosek

W tym artykule podsumowaliśmy, jak zainstalować i zabezpieczyć połączenia poprzez SSH z serwerem RHEL, jak zmienić jego nazwę i wreszcie, jak zapewnić uruchomienie usług sieciowych uruchomić. Jeśli zauważysz, że dana usługa nie została poprawnie uruchomiona, możesz użyć systemctl status -l [usługa] i journalctl -xn, aby rozwiązać problem.

Daj nam znać, co myślisz o tym artykule, korzystając z poniższego formularza komentarza. Pytania są również mile widziane. Oczekujemy na kontakt zwrotny!