konfiguracja centos

Konfiguracja CentOS to nie taki prosty temat i każdy z nas ma taki moment, że dobrym pomysłem po instalacji systemu operacyjnego jest jego skonfigurowanie do pracy. Każdy ma swoje sposoby, zaś ja chciałbym przedstawić moje must-have na start nim przejdę do realnego zastosowania nowego systemu.

Na wstępie zaznaczę, że opisuję wersję CentOS 7. Nie jest to najnowsza wersja tego systemu, ale po prostu nie miałem jeszcze okazji bawić się wersją 8, która wyszła w miarę niedawno. Wiedza powinna być raczej uniwersalna i również do zastosowania w wersji 8. Jednak mogę się mylić? (tak, to pytanie).

Konfigurację serwerów do ostatecznej pracy staram się prowadzić bezpośrednio z poziomu SaltStack. Oczywiście są inne narzędzia jak Ansible, czy Chef – jednak żadnej z trójki nie poruszę w tym artykule. Nim zacznę z nich korzystać, robię kilka rzeczy na start, bo nie wymagają dużego nakładu pracy (w mojej skali oczywiście), a automatyzację stosuję zaraz po zakończeniu tych pierwszych etapów.

CentOS 7 i 8 możemy pobrać ze strony projektu: https://centos.org/

CentOS i aktualizacje!

Skłamałbym, gdybym powiedział następujące słowa:

Aktualizacje robi się z rozwagą!

Jasne – tak się je powinno robić, ale na początek – na czystym systemie przyznam, że średnio mnie interesuje rozwaga, bo mogę wszystko zacząć od nowa niskim kosztem i bogatszy o nową wiedzę. Pierwszą rzeczą co robię jest pełna aktualizacja systemu. Można ją wykonać poprzez komendy:

yum check-update
yum upgrade

Co tutaj dużo opowiadać? Robimy aktualizację i system jest gotowy do pracy!

Pierwsza konfiguracja CentOS – Podstawowe narzędzia

Nie zawsze wszystko jest już zainstalowane. Wiele paczek na start instaluję, by mieć pewność ich obecności w razie potrzeby. Paczki takie jak vim, curl, netcat, htop, pstree, czy lsof są bardzo przydatne na wielu etapach pracy z systemem operacyjnym jakim jest system bazujący na jądrze GNU/Linux, więc warto takie posiadać. Każdy ma swoje ulubione pakiety, więc podane przykłady są bardzo mocno nastawione na moje potrzeby – Wy skorzystajcie z moich lub zbierzcie swoje ulubione pakiety! Np.: zamiast vim użyjcie nano – poczuję smutek w sercu, ale jak najbardziej masz do tego prawo 🙂

Jak instalujemy pakiety z repozytorium w CentOS? yum!

yum install vim nc htop lsof curl psmisc

Gotowe!

Serwisy w CentOS!

Były brakujące pakiety – to może teraz pakiety, których jest za dużo? Często działają jakieś serwisy w tle, których naprawdę nie potrzebujemy. W moim przypadku jest to często np.: postfix. Jest uruchomiony jako serwis w systemctl – nie jest mi on potrzebny, więc po co go utrzymywać? Wyłączmy go i usuńmy:

systemctl stop postfix
systemctl disable postfix
yum autoremove postfix

Oczywiście Ty drogi czytelniku musisz sam sobie wybrać czego nie potrzebujesz. W tym celu w poprzednim etapie instalowałem pstree z pakietu psmisc. Wpisujemy pstree -p i widzimy co tam mamy, ewentualnie systemctl list-unit-files

CentOS i jego zapora ogniowa

Przyznam, że śmieszy mnie ta nazwa – wolę angielski odpowiednik firewall. W poprzednim punkcie zmieniliśmy port dla SSH, by nie był na standardowym porcie. (nie zmieniliśmy, bo sobie sam wyciąłem dostęp… To będziemy robić później 🙂 ) Jak włączymy firewall to nam się trochę może uciąć dostęp, prawda?

Najpierw włączmy firewall. Standardowo jest nakładka o nazwie firewalld i z niego skorzystamy.

systemctl enable firewalld
systemctl start firewalld

No to dodajmy usługi! Jeśli korzystamy z HTTP/HTTPS to dodajmy je do wyjątków:

// Najpierw wersja https
firewall-cmd –add-service=https –permanent

// Dodajmy następnie wersję http
firewall-cmd –add-service=http –permanent

// Na koniec dodajmy SSH!
firewall-cmd –add-service=ssh –permanent //Tylko tymczasowo dodamy, o tym później

// A na koniec przeładujmy!
firewall-cmd –reload

No to mamy zaporę gotową! Dodamy jeszcze jeden port na potrzeby kolejnego punktu:

firewall-cmd –add-port=55555/tcp –permanent
// No i znowu przeładowanie!
firewall-cmd –reload

Konfiguracja SSH! Zmieńmy porty! Bezpieczeństwo!

Ten punkt miał być szybciej, ale jest teraz – tak dla bezpieczeństwa 🙂 Konfiguracja SSH nie jest prosta i wymaga trochę pracy, by znaleźć bezpieczny środek.

Na początku uruchomić musimy edytor i konfigurację trochę zmodyfikować:

vim /etc/ssh/sshd_config

Dostaliśmy się do konfiguracji i teraz wprowadźmy zmianę taką typowo standardową – pozostałe zmiany według uznania:

  • W linijce z portem:
    • Port 22
  • Zmieniamy (i usuwamy komentarz jak jest zakomentowana) na inny port (który dodaliśmy do wyjątku w firewalld!), np.:
    • Port 55555

Konfiguracja CentOS – Inne pomysły

Są rzeczy, których nie opisałem, bo to wszystko zależy od potrzeb. Nie bez powodu trzeba to samemu skonfigurować. Ja te rzeczy mam w systemie automatyzacji, inni robią ręcznie lub skryptami. Tymi rzeczami są np.: instalacja antywirusa, dodanie użytkownika i zablokowanie dostępu do konta root z zewnątrz po SSH, a także wiele innych czynności.

Osobiście pierw instaluję aplikację Lynis – świetne i proste narzędzie do audytu i “utwardzam” system, by był “bezpieczniejszy”.

yum install lynis
lynis audit system

W ten sposób dostaniemy wygodny raport. Zainstalujemy w ten sposób jakiś rootkit hunter, clamav, zmniejszymy niebezpieczeństwo pewnych konfiguracji SSH, zainstalujemy fail2ban i wiele, wiele innych. To pozostawiam Waszej ocenie, bo wszystko jest zależne od realnych potrzeb serwera, gdzie ten system instalowaliśmy.

Utrzymujemy Państwa dane w tajemnicy i udostępniamy je tylko tym osobom trzecim, które umożliwiają korzystanie z tej usługi. Więcej informacji można znaleźć w naszej Polityce Prywatności.

A Wy, czy macie swoje pomysły co można zrobić lepiej, albo co robicie zawsze na serwerach? Podzielcie się swoją wiedzą!

Również zapraszam do naszych innych materiałów: tutaj

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.