Wyszukiwanie w witrynie

Początkowa konfiguracja i konfiguracja serwera w systemie RHEL 7


W tym samouczku omówimy pierwsze kroki konfiguracyjne, które należy wykonać po świeżej instalacji Red Hat Enterprise Linux 7 na serwerze typu bare metal lub na wirtualnym serwerze prywatnym.

Wymagania

  1. Minimalna instalacja RHEL 7

Ważne: użytkownicy CentOS 7 mogą skorzystać z tego artykułu, aby przeprowadzić wstępną konfigurację serwera w CentOS 7.

Zaktualizuj system RHEL 7

W pierwszym kroku zaloguj się do konsoli serwera RHEL za pomocą konta z uprawnieniami roota lub bezpośrednio jako root i uruchom poniższe polecenie, aby w pełni zaktualizować komponenty systemu, takie jak zainstalowane pakiety, jądro lub zastosuj inne poprawki zabezpieczeń.

yum check-update
yum update

Aby usunąć wszystkie lokalnie pobrane pakiety i inne powiązane pamięci podręczne YUM, wykonaj poniższe polecenie.

yum clean all

Zainstaluj Narzędzia systemowe w RHEL 7

Następujące narzędzia mogą okazać się przydatne w codziennej administracji systemem: nano (edytor tekstu zastępujący edytor vi), wget, curl (narzędzia służące do pobierania pakietów głównie przez sieć) net-tools, lsof (narzędzia do zarządzania siecią lokalną) i bash-completion (autouzupełnianie wiersza poleceń).

Zainstaluj je wszystkie za jednym razem, wykonując poniższe polecenie.


yum install nano wget curl net-tools lsof bash-completion

Skonfiguruj sieć w RHEL 7

RHEL 7 posiada szeroką gamę narzędzi, których można używać do konfigurowania sieci i zarządzania nią, od ręcznej edycji pliku konfiguracyjnego sieci po używanie poleceń takich jak ip, ifconfig, nmtui, nmcli lub trasa.

Najłatwiejszym narzędziem, którego może użyć początkujący do zarządzania konfiguracją sieci i zmiany jej konfiguracji, jest graficzny wiersz poleceń nmtui.

Aby zmienić nazwę hosta systemu za pomocą narzędzia nmtui, wykonaj polecenie nmtui-hostname, ustaw nazwę hosta swojego komputera i naciśnij OK, aby zakończyć, jak pokazano na poniższym zrzucie ekranu.


nmtui-hostname

Aby manipulować interfejsem sieciowym, wykonaj polecenie nmtui-edit, wybierz interfejs, który chcesz edytować i wybierz opcję edycji z prawego menu, jak pokazano na zrzucie ekranu poniżej.

Po wejściu do interfejsu graficznego narzędzia nmtui możesz skonfigurować ustawienia IP interfejsu sieciowego, jak pokazano na poniższym zrzucie ekranu. Po zakończeniu przejdź do OK za pomocą klawisza [tab], aby zapisać konfigurację i wyjść.

Aby zastosować nową konfigurację interfejsu sieciowego, wykonaj polecenie nmtui-connect, wybierz interfejs, którym chcesz zarządzać i kliknij opcję Dezaktywuj/Aktywuj, aby wyłączyć i uruchomić interfejs z ustawieniami IP, jak pokazano na poniższych zrzutach ekranu.


nmtui-connect

Aby wyświetlić ustawienia interfejsu sieciowego, możesz sprawdzić zawartość pliku interfejsu lub wydać poniższe polecenia.


ifconfig enp0s3
ip a
ping -c2 google.com

Inne przydatne narzędzia, których można używać do zarządzania szybkością, stanem łącza lub uzyskiwania informacji o interfejsach sieciowych maszyny, to ethtool i mii-tool.


ethtool enp0s3
mii-tool enp0s3

Utwórz nowe konto użytkownika

W następnym kroku, będąc zalogowanym na serwerze jako root, utwórz nowego użytkownika za pomocą poniższego polecenia. Ten użytkownik będzie później używany do logowania się do Twojego systemu i wykonywania zadań administracyjnych.

adduser tecmint_user

Po dodaniu użytkownika za pomocą powyższego polecenia skonfiguruj silne hasło dla tego użytkownika, wydając poniższe polecenie.

passwd tecmint_user

W przypadku, gdy chcesz wymusić na nowym użytkowniku zmianę hasła przy pierwszej próbie logowania, wykonaj poniższe polecenie.

chage -d0 tecmint_user

To nowe konto użytkownika ma na razie zwykłe uprawnienia i nie może wykonywać zadań administracyjnych za pomocą polecenia sudo.

Aby uniknąć wykorzystania konta root do wykonywania uprawnień administracyjnych, nadaj temu nowemu użytkownikowi uprawnienia administracyjne, dodając go do grupy systemowej „koło”.

Użytkownicy należący do grupy „koło” domyślnie mogą w RHEL uruchamiać polecenia z uprawnieniami roota za pomocą narzędzia sudo przed napisaniem polecenia potrzebnego do wykonania.

Na przykład, aby dodać użytkownika „tecmint_user” do grupy „koło”, wykonaj poniższe polecenie.

usermod -aG wheel tecmint_user

Następnie zaloguj się do systemu jako nowy użytkownik i spróbuj zaktualizować system za pomocą polecenia „sudo yum update”, aby sprawdzić, czy użytkownikowi przyznano uprawnienia roota.

su - tecmint_user
sudo yum update

Skonfiguruj uwierzytelnianie klucza publicznego SSH w RHEL 7

W następnym kroku, aby zwiększyć bezpieczeństwo usługi RHEL, skonfiguruj uwierzytelnianie kluczem publicznym SSH dla nowego użytkownika. Aby wygenerować parę kluczy SSH, klucz publiczny i prywatny, wykonaj następujące polecenie na konsoli serwera. Upewnij się, że jesteś zalogowany do systemu z użytkownikiem, dla którego konfigurujesz klucz SSH.

su - tecmint_user
ssh-keygen -t RSA

Podczas generowania klucza zostaniesz poproszony o dodanie hasła w celu zabezpieczenia klucza. Możesz wprowadzić silne hasło lub pozostawić je puste, jeśli chcesz automatyzować zadania za pośrednictwem serwera SSH.

Po wygenerowaniu klucza SSH skopiuj parę kluczy publicznych na zdalny serwer, wykonując poniższe polecenie. Aby zainstalować klucz publiczny na zdalnym serwerze SSH, będziesz potrzebować konta użytkownika posiadającego dane uwierzytelniające umożliwiające zalogowanie się do tego serwera.

ssh-copy-id [email 

Teraz powinieneś spróbować zalogować się przez SSH do zdalnego serwera, używając klucza prywatnego jako metody uwierzytelnienia. Powinieneś móc zalogować się automatycznie, bez pytania serwera SSH o hasło.

ssh [email 

Aby zobaczyć zawartość publicznego klucza SSH, jeśli chcesz ręcznie zainstalować klucz na odległym serwerze SSH, wydaj następujące polecenie.

cat ~/.ssh/id_rsa

Bezpieczne SSH na RHEL 7

Aby zabezpieczyć demona SSH i uniemożliwić zdalny dostęp SSH do konta root za pomocą hasła lub klucza, otwórz główny plik konfiguracyjny serwera SSH i wprowadź następujące zmiany.

sudo vi /etc/ssh/sshd_config

Wyszukaj wiersz #PermitRootLogin tak, odkomentuj wiersz, usuwając znak # (hashtag) z początku wiersza i zmodyfikuj wiersz tak, aby wyglądał jak pokazano poniżej fragment.

PermitRootLogin no

Następnie zrestartuj serwer SSH, aby zastosować nowe ustawienia i przetestuj konfigurację, próbując zalogować się do tego serwera przy użyciu konta root. Dostęp do konta root przez SSH powinien być już ograniczony.

sudo systemctl restart sshd

Są sytuacje, w których możesz chcieć automatycznie rozłączyć wszystkie zdalne połączenia SSH z serwerem po pewnym okresie bezczynności.

Aby włączyć tę funkcję w całym systemie, wykonaj poniższe polecenie, które dodaje zmienną bash TMOUT do głównego pliku bashrc i wymusza rozłączenie lub zerwanie każdego połączenia SSH- wyłączony po 5 minutach bezczynności.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

Uruchom polecenie tail, aby sprawdzić, czy zmienna została poprawnie dodana na końcu pliku /etc/bashrc. Od tej chwili wszystkie kolejne połączenia SSH będą automatycznie zamykane po 5 minutach braku aktywności.

tail /etc/bashrc

Na poniższym zrzucie ekranu zdalna sesja SSH z maszyny drupal do serwera RHEL została automatycznie wylogowana po 5 minutach.

Skonfiguruj zaporę sieciową w RHEL 7

W następnym kroku skonfiguruj zaporę ogniową, aby dodatkowo zabezpieczyć system na poziomie sieci. RHEL 7 jest dostarczany z aplikacją Firewalld do zarządzania regułami iptables na serwerze.

Najpierw upewnij się, że zapora sieciowa działa w Twoim systemie, wydając poniższe polecenie. Jeśli demon Firewalld jest zatrzymany, należy go uruchomić za pomocą następującego polecenia.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

Gdy zapora sieciowa zostanie włączona i uruchomiona w systemie, możesz użyć narzędzia wiersza poleceń firewall-cmd, aby ustawić informacje o zasadach zapory i zezwolić na ruch do niektórych określonych portów sieciowych, takich jak demon SSH, nawiązane połączenie do wewnętrznego serwera WWW lub innych powiązanych usług sieciowych.

Ponieważ w tej chwili na naszym serwerze działa tylko demon SSH, możemy dostosować politykę zapory sieciowej, aby zezwalać na ruch dla portu usługi SSH, wydając następujące polecenie.

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Aby dodać regułę zapory sieciowej na bieżąco, bez stosowania reguły przy następnym uruchomieniu serwera, użyj poniższej składni polecenia.

sudo firewall-cmd --add-service=sshd

Jeśli instalujesz na swoim serwerze inne usługi sieciowe, takie jak serwer HTTP, serwer pocztowy lub inne usługi sieciowe, możesz dodać reguły zezwalające na określone połączenia w następujący sposób.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

Aby wyświetlić listę wszystkich reguł zapory sieciowej, uruchom poniższe polecenie.

sudo firewall-cmd --permanent --list-all

Usuń niepotrzebne usługi w RHEL 7

Aby uzyskać listę wszystkich usług sieciowych (TCP i UDP) działających domyślnie na serwerze RHEL, wydaj polecenie ss, jak pokazano w poniższym przykładzie.

sudo ss -tulpn

Polecenie ss ujawni kilka interesujących usług, które są domyślnie uruchomione i działają w Twoim systemie, takich jak usługa główna Postfix i serwer odpowiedzialny za protokół NTP.

Jeśli nie planujesz konfigurować tego serwera jako serwera pocztowego, powinieneś zatrzymać, wyłączyć i usunąć demona Postfix, wydając poniższe polecenia.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Ostatnio odnotowano kilka nieprzyjemnych ataków DDOS na protokół NTP. Jeśli nie planujesz konfigurować serwera RHEL do działania jako serwer NTP, aby klienci wewnętrzni mogli synchronizować czas z tym serwerem, powinieneś całkowicie wyłączyć i usunąć demona Chrony, wydając poniższe polecenia.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Ponownie uruchom polecenie ss, aby sprawdzić, czy w systemie działają inne usługi sieciowe, a następnie wyłącz je i usuń.

sudo ss -tulpn

Aby zapewnić dokładny czas dla Twojego serwera i zsynchronizować czas z serwerem równorzędnym z górnym czasem, możesz zainstalować narzędzie ntpdate i zsynchronizować czas z publicznym serwerem NTP, wykonując poniższe polecenia.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

Aby zautomatyzować codzienne wykonywanie polecenia synchronizacji czasu ntpdate bez interwencji użytkownika, zaplanuj uruchomienie nowego zadania crontab o północy z następującą treścią.

sudo crontab -e

Fragment pliku Crontab:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

To wszystko! Teraz Twój serwer RHEL jest przygotowany na instalację dodatkowego oprogramowania potrzebnego do niestandardowych usług lub aplikacji sieciowych, takich jak instalacja i konfiguracja serwera WWW, serwera bazy danych, usługi udostępniania plików lub innych specyficznych aplikacji.

Aby jeszcze bardziej zabezpieczyć i wzmocnić serwer RHEL 7, zapoznaj się z poniższymi artykułami.

  1. Mega przewodnik po utwardzaniu i zabezpieczaniu RHEL 7 – część 1
  2. Mega przewodnik po utwardzaniu i zabezpieczaniu RHEL 7 – część 2

Jeśli planujesz wdrażanie witryn internetowych w systemie RHEL 7, dowiedz się, jak skonfigurować i skonfigurować stos LAMP lub stos LEMP.