Wstępna konfiguracja wymagana po zainstalowaniu systemu CentOS.


Data publikacji:8 grudnia 2020 r.



INFOMARTION > Wstępna konfiguracja wymagana po zainstalowaniu systemu CentOS.

Przegląd.

W tym rozdziale opisano pierwsze niezbędne ustawienia po zainstalowaniu systemu CentOS. Jest on zbudowany przy użyciu systemu CentOS 7.6 (1810).

Spis treści

  1. ustawienie podstawowe
  2. streszczenie

1. ustawienie podstawowe

W tym rozdziale opisano podstawowe ustawienia wymagane bezpośrednio po zainstalowaniu systemu CentOS.

1-1. Sprawdzanie systemu operacyjnego

Najpierw należy sprawdzić, czy zainstalowano prawidłowy system operacyjny.

[root@hostname ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

Zainstalowanym systemem operacyjnym jest "CentOS Linux release 7.6.1810 (Core)". Sprawdź, czy jest on prawidłowy.

1-2. Instalowanie narzędzia

Bezpośrednio po instalacji nie można wykonać podstawowych poleceń, takich jak ifconfig. Dlatego instalacja jest przeprowadzana w taki sposób, aby podstawowe polecenia sieciowe i inne mogły być wykonywane za pomocą poleceń yum.

W razie potrzeby należy wykonać tę czynność, ponieważ istnieje możliwość modernizacji tego, co zostało już zainstalowane, za pomocą polecenia "yum -y update".

[root@hostname ~]# yum install -y net-tools
[root@hostname ~]# yum install -y wget
[root@hostname ~]# yum install -y tcpdump
[root@hostname ~]# yum install -y traceroute

net-tools・・・Po instalacji można użyć polecenia ifconifg i innych.

wget・・・Dosłownie, ale można też użyć polecenia wget. W skrócie, to polecenie wysyła żądanie http.

tcpdump・・・Dosłownie, ale można też użyć polecenia tcpdump. W skrócie, może on monitorować żądania wysyłane do serwera.

traceroute・・・Dosłownie, ale można też użyć polecenia traceroute. W skrócie, pokazuje trasę do docelowego adresu IP.

1-3. Wyłączanie systemu selinux

Wyłącz selinux, ponieważ jest on włączony i może zachowywać się nieprzewidywalnie.

Po pierwsze, selinux jest systemem związanym z bezpieczeństwem. Jeśli jesteś w stanie z niej korzystać, możesz ją włączyć, ale jeśli jest to trudne, wyłącz ją. Wyłączenie systemu selinux nie musi powodować osłabienia bezpieczeństwa.Jest bardziej prawdopodobne, że będzie powodować problemy, jeśli zostanie włączona, chociaż osobiście nie rozumiem jej działania. Proste wyjaśnienie jest takie, że selinux jest środkiem bezpieczeństwa po naruszeniu serwera (skonfigurowanym tak, aby zminimalizować szkody w przypadku naruszenia), więc ważniejsze jest podjęcie środków bezpieczeństwa, aby zapobiec naruszeniu serwera.

Poniżej przedstawiono kroki, jakie należy podjąć w celu dezaktywacji.

[username@hostname ~]$ getenforce
Disabled

Jeśli nie jest to opcja "Wyłączone", można ją zmienić, wykonując poniższą procedurę.

[username@hostname ~]$ vi /etc/selinux/config


config【Przed zmianą】


SELINUX=enforcing


config【po zmianie】


SELINUX=disabled

SELINUX" i "SELINUXTYPE", ale to właśnie "SELINUX" wymaga zmiany. Należy pamiętać, że jeśli przez pomyłkę zmienisz wartość "SELINUXTYPE", serwer nie zostanie uruchomiony.

Po ponownym uruchomieniu serwera konfiguracja zostanie wprowadzona w życie.

1-4. dodatkowy użytkownik operacyjny

Logowanie się i praca jako użytkownik root jest niebezpieczna, dlatego należy dodać użytkownika, który będzie się logował. W kolejnym kroku należy wyłączyć logowanie użytkownika root.

Ryzyko związane z pracą jako zalogowany użytkownik root polega na tym, że można robić wszystko, co się chce. Ryzyko związane z możliwością wykonywania dowolnych czynności polega na tym, że użytkownik może przypadkowo zmienić lub usunąć ważne zmiany dotyczące systemu operacyjnego. Jeśli używasz serwera do celów prywatnych, takich jak hobby czy nauka, i nie popełniasz takich zwykłych błędów, osobiście nie widzę problemu z logowaniem się jako użytkownik root. Powodem numer jeden, dla którego użytkownik root nie może się zalogować, jest podział uprawnień. Zespół ds. rozwoju aplikacji korzysta z użytkowników, którzy tylko dotykają katalogu w celu rozwoju aplikacji. Zespół ds. rozwoju partii korzysta z użytkowników, którzy mają dostęp tylko do katalogu rozwoju partii. Lepiej jest rozdzielić użytkowników, aby odpowiednie zespoły mogły dotykać potrzebnych katalogów, np.

Poniżej przedstawiono kroki, które należy wykonać, aby dodać użytkowników.

[root@hostname ~]# useradd xxxxxx
[root@hostname ~]# passwd xxxxxx

※xxxxxxxx to nazwa użytkownika, który ma zostać dodany. Ustaw dowolne hasło.

1-5. Zmień hasło użytkownika root

Jeśli nie jesteś użytkownikiem root, przełącz się na użytkownika root za pomocą polecenia su - i wykonaj następujące polecenie

[username@hostname ~]$ su -
[root@hostname ~]# passwd

※Ustaw dowolne hasło.

Nigdy nie rezygnuj z hasła początkowego. Najgorsze jest hasło "root". Dość niebezpieczne są również hasła "password" i "1234". Dobrze jest wprowadzić co najmniej osiem cyfr, w tym symbole alfanumeryczne.

To ustawienie hasła jest dość ważne dla środków bezpieczeństwa i powinno być ustawione z najwyższą starannością. Zmiana hasła użytkownika root jest dość prosta, ale należy pamiętać, że słyszeliśmy wiele historii o przypadkach naruszenia bezpieczeństwa spowodowanych przez takie działanie. Nie zakładaj, że nikt nie zaatakuje Twojego serwera, ponieważ jest on niewielki. Napastnik uzyskuje dostęp do losowego serwera z nazwą użytkownika "root" i hasłem "root".

1-6. Konfiguracja zakazu logowania się przez użytkowników nieoperacyjnych (zakaz logowania się przez użytkownika root i innych użytkowników).

Ograniczenie liczby użytkowników, którzy mogą się zalogować. W szczególności nie należy zezwalać na logowanie się użytkownikom root. Jeśli użytkownik jest zalogowany jako root, jest to równoznaczne z wyłączeniem wszystkich środków bezpieczeństwa.

Poniżej przedstawiono kroki wyłączenia logowania użytkownika root i dodania użytkowników, którzy mogą się zalogować. Przełącz się na użytkownika root, a następnie zmień plik konfiguracyjny. (Możliwe jest przełączenie się na użytkownika root za pomocą polecenia 'su-', ale nie można się zalogować).

[username@hostname ~]$ su -
[root@hostname ~]# vi /etc/ssh/sshd_config


sshd_config【Przed zmianą】


#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10


sshd_config【po zmianie】


#LoginGraceTime 2m
PermitRootLogin no
AllowUsers xxxxxx
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

※xxxxxxxx to nazwa użytkownika operacyjnego, którą właśnie dodano.


Należy zwrócić uwagę na to, że jeśli nazwa AllowUsers jest nieprawidłowa, nikt nie będzie mógł się zalogować, dlatego należy dokładnie sprawdzać nazwy użytkowników.

Sprawdź składnię i uruchom ponownie sshd.

[root@hostname ~]# /usr/sbin/sshd -t
[root@hostname ~]# systemctl restart sshd

Po wylogowaniu się i potwierdzeniu, że nie można zalogować się jako root oraz że można zalogować się jako dodany użytkownik operacyjny, można zakończyć pracę.


1-7. synchronizacja czasu

Sprawdź, czy czas jest zsynchronizowany. Czasami czas serwera nie jest zsynchronizowany, więc data i godzina wyjścia dziennika są wyświetlane w innym czasie niż oczekiwano, a przeanalizowanie problemu zajmuje dużo czasu.

Sprawdź uruchomienie procesu synchronizacji czasu (chronyd). Sprawdź stan synchronizacji czasu. Należy pamiętać, że CentOS7 to "chronyd", a wcześniejsze to "ntpd", więc należy zachować ostrożność, jeśli używamy systemu 6 lub wcześniejszego.

[root@hostname ~]# ps aux | grep chronyd
chrony     567  0.0  1.3 117804 13664 ?        SL    5月04   0:04 /usr/sbin/chronyd
root     32489  0.0  0.0 112732   972 pts/1    S+   16:30   0:00 grep --color=auto chronyd
[root@hostname ~]# timedatectl
      Local time: dzień (miesiąca) 2020-11-29 16:30:43 JST
  Universal time: dzień (miesiąca) 2020-11-29 07:30:43 UTC
        RTC time: dzień (miesiąca) 2020-11-29 07:30:43
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Jeśli "Czas lokalny" jest zgodny z bieżącym czasem, "NTP włączone" jest tak, a "NTP zsynchronizowane" jest tak, to wszystko jest w porządku.


1-8. Ustawienia uwierzytelniania kluczy

W przypadku właśnie dodanych użytkowników operacyjnych zezwalaj im na logowanie się tylko za pomocą uwierzytelniania kluczem.

Samo wyłączenie uwierzytelniania za pomocą hasła znacznie zwiększa bezpieczeństwo. W przypadku uwierzytelniania za pomocą hasła, jeśli użyjesz złożonego hasła, zasadniczo nie zostaniesz zalogowany, ale prawdopodobieństwo to nie jest równe zero procent. Jednak w przypadku uwierzytelniania za pomocą klucza można się zalogować tylko wtedy, gdy posiada się klucz, więc jeśli tylko użytkownik odpowiednio zarządza swoim kluczem, nie zostanie zalogowany.

Poniżej przedstawiono procedurę konfigurowania uwierzytelniania za pomocą klucza.

[username@hostname ~]$ su - xxxxxx
[xxxxxx@hostname ~]$ ssh-keygen -t rsa -b 2048

※xxxxxxxx to nazwa dodatkowego użytkownika operacyjnego.

※Po wykonaniu polecenia "ssh-keygen -t rsa -b 2048" zostaniesz poproszony o odpowiedź, podaj wszystkie wartości domyślne i naciśnij "Enter". Konfiguracja również bez hasła. (Wprowadzenie hasła zapewnia dodatkowe bezpieczeństwo jako uwierzytelnianie kluczem plus uwierzytelnianie hasłem, ale w tym przypadku nie jest zakładane żadne hasło).


Następnie sprawdź, czy klucz został utworzony.

[xxxxxx@hostname ~]$ ll /home/xxxxxx/.ssh

※xxxxxxxx to nazwa dodatkowego użytkownika operacyjnego.

Sprawdź, czy przechowywany jest klucz prywatny "id_rsa", klucz publiczny "id_rsa.pub".

Zmień nazwę klucza publicznego i przenieś katalog do pobrania klucza prywatnego.

[xxxxxx@hostname ~]$ mv /home/xxxxxx/.ssh/id_rsa.pub /home/xxxxxx/.ssh/authorized_keys
[xxxxxx@hostname ~]$ mv /home/xxxxxx/.ssh/id_rsa /home/xxxxxx/id_rsa

※xxxxxxxx to nazwa dodatkowego użytkownika operacyjnego.

Usuń klucz prywatny (id_rsa) z serwera po przeniesieniu go lokalnie.

Przenieś /home/xxxxxxxx/id_rsa do local. (Przejdź np. do WinSCP).

Po przeniesieniu wykonaj polecenie usunięcia.

[xxxxxx@hostname ~]$ rm /home/xxxxxx/id_rsa

※xxxxxxxx to nazwa użytkownika dodana w kroku (3).

Na tym kończy się konfiguracja uwierzytelniania kluczy. Sprawdź, czy możesz zalogować się za pomocą utworzonego klucza prywatnego.

Po uzyskaniu potwierdzenia, że można się zalogować, ostatnim krokiem jest zmiana ustawień, aby uniemożliwić logowanie się przy użyciu weryfikacji hasła.

[username@hostname ~]$ su -
[root@hostname ~]# vi /etc/ssh/sshd_config


sshd_config【Przed zmianą】


PasswordAuthentication yes


sshd_config【po zmianie】


PasswordAuthentication no

Sprawdź składnię i uruchom ponownie sshd.

[root@hostname ~]# /usr/sbin/sshd -t
[root@hostname ~]# systemctl restart sshd

Na tym kończy się konfiguracja uwierzytelniania kluczy.


2. streszczenie

Opisaliśmy wstępną konfigurację wymaganą po zainstalowaniu systemu CentOS.

Informacje zawarte w tym artykule to minimum, które powinno być wdrożone podczas instalacji systemu CentOS, więc jeśli po przeczytaniu tego artykułu uznasz, że są jakieś braki, spróbuj je skonfigurować.

Dziękujemy, że oglądaliście do końca.