Dzięki podstawowym narzędziom zawartych w wierszu poleceń systemu Linux możemy wykonać ogromną ilość konfiguracji. Dzięki temu dostosujemy system do naszych potrzeb oraz poprawiamy jego bezpieczeństwo. Wymienione w tym materiale 9 poleceń systemu Linux są niesamowicie istotne, ponieważ to dzięki nim wykonamy większość zleconych nam czynności. Chcę zwrócić szczególną uwagę na te wbudowane, ponieważ to one mogą pomóc w ochronie przed zagrożeniami takimi jak złośliwe oprogramowanie czy też zablokować możliwości przeprowadzenia ataku sieciowego. Zapewnienie bezpieczeństwa systemu jest bardzo istotne, w każdej działalności. Dlatego powinniśmy wdrażać konieczne środki, by zmniejszyć ryzyko wystąpienia wspomnianych zagrożeń, przez co zapewnić ochronę danych i systemu.
Na łamach tego artykułu nie będę prezentował skanerów podatności, czy też innych narzędzi, zewnętrznych. Zobacz 9 poleceń systemu Linux. Jednak osobiście uważam, że wspomniane tutaj polecenia powinien znać każdy użytkownik systemu Linux. Zrozumienie działania opisywanych okazać się może kluczowe w naszych codziennych działaniach. Szczególnie że nie są one bardzo skomplikowane. O czym przekonasz się, czytając dalej…
Mini - Kurs Zabbix za darmo!
Z okazji Świąt mamy dla Was darmowy kurs Zabbix. Półtorej godziny wystarczy, aby zdobyć solidne podstawy
Kurs można odebrać do 28 kwietnia do 23:59!
Dołącz na: https://asdevops.pl/warsztaty/
Pierwsze polecenie: useradd
Dzięki tytułowemu poleceniu będziemy w stanie stworzyć nowe konto użytkownika. Przy jego pomocy ustawiasz takie wartości jak nazwa użytkownika, hasło, katalog domowy i członkostwo w grupie.
Składnia wygląda następująco:
useradd [opcje] <nazwa-użytkownika>
W celu utworzenia nowego konta o nazwie krzysiek z domyślnymi ustawieniami posługujemy się poleceniem w następujący sposób:
useradd krzysiek
Pamiętaj, że aby utworzyć nowe konto użytkownika musisz mieć do tego odpowiednie uprawnienia. Dlatego albo musisz skorzystać z konta root, albo z sudo.
W prezentowanym przykładzie tworzymy w sposób najprostszy konto użytkownika. Polecenie posiada wiele innych możliwości. Na przykład możemy określić mu niestandardowy katalog domowy. W celu wykonania tej czynności wprowadzamy polecenie:
useradd -d /home/kamil kamil
Jednak jeżeli stworzyliśmy już konto, to prezentowany sposób nie zadziała. Dla przykładu, jeżeli chcielibyśmy przypisać nowy katalog domowy dla użytkownika krzysiek, otrzymamy informację zwrotną:
useradd -d /home/krzysiek krzysiek
useradd: user 'krzysiek' already exists
Dlatego należy zapamiętać, że jeżeli chcemy nadać niestandardowy katalog użytkownikowi, to musimy zrobić w trakcie tworzenia konta. Użyłem słowa niestandardowy, ponieważ bez tej opcji przypisywany jest katalog noszący nazwę użytkownika w katalogu /home.
Istotne jest również słowo przypisywany, ponieważ polecenie go nie tworzy, a jedynie przypisuje. W celu stworzenia katalogi powinniśmy użyć polecenia:
useradd -m karolina
Do innych przydatnych opcji możemy zaliczyć możliwość przypisania do grupy użytkownika. Robimy to przy pomocy polecenia:
useradd -g mysql adam
Jednak wywołanie polecenie w prezentowany sposób nie utworzy grupy noszącego taką samą nazwę co użytkownik.
Kolejną przydatną funkcją jest ustawienie hasła dla użytkownika:
useradd -p haslo karol
Korzystać z tego polecenia będziesz dość często. Wszystkie możliwe opcje dokładnie opisane odnajdziesz w podręczniku, do którego dostaniesz się za pomocą man useradd.
Drugie polecenie: passwd
Jest to narzędzie systemu Linux, dzięki któremu zmienimy hasło do konta użytkownika. Składnia wygląda w następujący sposób:
passwd [opcje] nazwa-użytkownika
W celu zmiany hasła dla użytkownika krzysiek, utworzonego w poprzednim paragrafie korzystamy z polecenia w następujący sposób:
passwd krzysiek
New password:
Retype new password:
passwd: password updated successfully
Po jego wywołaniu zostaniesz poproszony o wprowadzenie i potwierdzenie nowego hasła. Nowe hasło zostanie zaszyfrowane i zapisane w pliku haseł w systemie, zastępując stare.
Istnieje możliwość całkowitego usunięcia hasła. Robimy to w następujący sposób:
passwd -d krzysiek
passwd: password changed.
Aby zablokować możliwość logowania użytkownika na konto, należy użyć polecenia:
passwd -l karolina
passwd: password changed.
Polecenie posiada bardzo dużo innych opcji. Wszystkie dokładnie opisane odnajdziesz w podręczniku man passwd.
Trzecie polecenie: chmod
Jest to jedno z najważniejszych poleceń w systemie Linux, które musi znać każdy, z podkreśleniem słowa każdy. To dzięki niemu nadajemy uprawnienia do plików oraz katalogów. Zalicza się do najważniejszym, ponieważ to, dzięki niemu jesteś w stanie zwiększyć bezpieczeństwo plików oraz katalogów. Składnia wygląda następująco:
chmod [opcje] uprawnienie nazwa-pliku/nazwa-katalogu
Nadawanie uprawnień, najczęściej wykonuje się na dwa sposoby. Z wykorzystaniem liter lub cyfr. Niemniej jednak najczęściej spotkasz się z rozwiązaniem cyfrowym. Cyfry reprezentują uprawnienia takie jak na poniższej liście:
0 - ---
1 - --x
2 - -w-
3 - -wx
4 - r--
5 - r-x
6 - rw-
7 - rwx
W celu nadania uprawnień wskazane w powyższym przykładzie liczby należy połączyć za pomocą zapisu ósemkowego. Na przykład, aby nadać właścicielowi pliku uprawnienia do odczytu i zapisu, a wszystkim innym uprawnienia tylko do odczytu, można użyć następującego zbioru liczb:
660
Więcej na temat uprawnień w systemie Linux i omawianego polecenia możesz przeczytać w osobnym artykule noszącym nazwę Uprawnienia w systemie Linux (link jak będzie) lub w podręczniku man chmod.
Czwarte polecenie: chown
Dzięki poleceniu chown, zmienisz właściciela pliku lub katalogu. Wspomniana własność określa, który użytkownik i grupa mają do niego dostęp oraz mogą go modyfikować. Składnia polecenia wygląda następująco:
chown [opcja] [właściciel][:[grupa]] plik
Gdzie nazwa użytkownika to nazwa nowego właściciela pliku lub katalogu. Grupa to nazwa grupy, do jakiej ma przynależeć wskazany plik lub katalog. Natomiast słowo użyte w składni jako plik to nazwa pliku, na którym wprowadzamy wymienione zmiany.
Na przykład, aby zmienić właściciela pliku noszącego nazwę plik na użytkownika krzysiek i nadać uprawnienia wszystkim użytkownikom należącym do grupy mysql, konstruujemy polecenie w następujący sposób:
touch plik
chown krzysiek:mysql plik
W celu zmiany właściciela katalogu i wszystkich plików w nim się znajdujących posługujemy się poleceniem w następujący sposób:
mkdir uprawnienia
cd uprawnienia
touch plik1 plik2 plik3
cd ..
chown -R krzysiek:mysql uprawnienia/
Wywołanie powyższych poleceń w prezentowany sposób zmieni właściciela oraz nada uprawnienia grupie dla katalogu, oraz plików w nim się znajdujących.
Tak jak w poprzednich przypadkach musisz korzystać z konta administratora lub sudo. Więcej na temat tego polecenia możesz uzyskać w podręczniku man chown.
Piąte polecenie: sudo
Choć może powinienem napisać o nim jako o pierwszym, to jednak postanowiłem zrobić to dopiero teraz. Sudo jest narzędziem systemu Linux, dzięki któremu wywołujesz polecenia z uprawnieniami administratora. Dzięki niemu wykonasz wszystkie poznane dotychczas w tym materiale.
Aby uzyskać możliwość korzystania z sudo, konto musi zostać dodane do odpowiedniej grupy. Uzyskasz to przy pomocy polecenia:
usermod -a -G sudo <nazwa-użytkownika>
Następnie używasz go w następujący sposób:
sudo <polecenie>
Dla przykładu w celu instalacji pakietu w systemie Red Hat Enterprise Linux możesz użyć następującej formy polecenia:
sudo yum <nazwa-pakietu>
Gdy użyjesz polecenia, zostaniesz poproszony o podanie hasła do twojego konta w celu zweryfikowania tożsamości.
Dzięki poleceniu sudo wykonasz prawie wszystkie czynności bez konieczności korzystania z konta root. Większość dystrybucji, jak i nie wszystkie zalecają korzystanie z niego zamiast root’a.
Szóste polecenie: iptables
Jest to wbudowany firewall w jądro systemu Linux. Umożliwia skonfigurowanie reguł zapory sieciowej. Instaluje się automatycznie z każdą dystrybucją. Dlatego należy do bardzo ważnych narzędzi, które powinien znać każdy administrator. Składnia polecenia wygląda w następujący sposób:
iptables [opcja] -A|D reguła łańcuchowa [opcje]
Dla przykładu, aby umożliwić logowanie za pomocą SSH, musimy odblokować port 22 ( najczęściej ). W celu umożliwienia logowania wprowadzamy polecenie w następujący sposób:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Polecenie dodaje regułę do łańcucha INPUT, która określa, że pakiety z protokołem TCP i portem docelowym 22 powinny być akceptowane.
W celu usunięcia reguły możesz posłużyć się poleceniem:
iptables -A INPUT -p tcp --dport 22 -j DROP
Jednak co jest bardzo istotne, reguły iptables są tymczasowe. Dlatego po restarcie urządzenia zostaną one wyczyszczone. Aby tak się nie stało, musisz zapisać wprowadzone zmiany przy pomocy iptables-save, a następnie użyć iptables-restore w celu ich przywrócenia.
Więcej na temat zapór sieciowych możesz przeczytać we wcześniejszym moim artykule noszącym nazwę Sieci i firewall na serwerach Linux (link jak będzie) lub skorzystać z podręcznika man iptables.
Siódme polecenie: ssh
Jest to narzędzie, które zapewnia bezpieczne połączenie zdalne. W obecnej chwili jest używane wszędzie tam, gdzie, istnieje konieczność połączenia zdalnego, ponieważ szyfruje je, co zapewnia bezpieczeństwo zarówno samego połączenia, jak i przesyłanych plików. Składnia wygląda następująco:
ssh [opcje] <nazwa-użytkownika>@<nazwa-hosta> lub <adres-ip>
Dla przykładu, aby zalogować się zdalnie, do konta użytkownika krzysiek znajdującego się na urządzeniu pod adresem ip 10.0.2.6 korzystamy z polecenia w następujący sposób:
ssh krzysiek@10.0.2.6
Zostaniesz poproszony o podanie hasła do konta. Standardowo ssh korzysta z portu 22, jeżeli serwer, z którym się łączysz, ma ustawiony inny, możesz użyć opcji -p.
SSH jest to bardzo potężne i co ważnie nieskomplikowane narzędzie. Jeżeli jesteś zainteresowany szczegółowym zapoznaniem się z nim, to zapraszam do naszego szkolenia znajdującego się pod adresem https://grupadm.pl/product/szkola-admina/ i https://grupadm.pl/product/klucze-publiczne-w-linuxie/.
Ósme polecenie: rkhunter
Narzędzie służy do wyszukiwania rotkitów oraz innego złośliwego oprogramowania w systemie Linux. Wykrywa oznaki złośliwego oprogramowania jak na przykład podejrzane modyfikacje systemu, nieprawidłowe zachowania czy też ukryte pliki. Podstawowa składnia polecenia wygląda następująco:
rkhunter [opcja] --check
Dzięki opcji –check przeprowadzasz skanowanie w poszukiwaniu zagrożeń wspomnianych w poprzednim akapicie. Jednak przed wykonaniem jakiegokolwiek skanowania zawsze należy zaktualizować definicje programu. Wykonujemy to przy pomocy polecenia:
rkhunter --update --check
W ten sposób zaktualizujesz definicje programu, jak i również przeprowadzimy skanowanie. Natomiast możliwe, że program nie jest zainstalowany w dystrybucji, z której korzystasz. Dlatego użyj wbudowanego menadżera pakietów i zainstaluj pakiet rkhunter.
W przypadku gdy otrzymasz błąd:
Invalid WEB_CMD configuration option: Relative pathname: „/bin/false”
Zmodyfikuj plik:
nano -w /etc/rkhunter.conf
I wprowadź w nim następujące zmiany:
MIRRORS_MODE=1 ---> MIRRORS_MODE=0
UPDATE_MIRRORS=0 ---> UPDATE_MIRRORS=1
WEB_CMD="/bin/false" ---> WEB_CMD=""
Po zapisaniu wprowadzonych zmian wszystko powinno funkcjonować, jak należy.
Pełny raport z przeprowadzonego skanowania znajduje się w folderze /var/log/rkhunter.log.
Tak samo, jak w poprzednich przypadkach, jeżeli chcesz poznać więcej informacji, skorzystaj z podręcznika w następujący sposób man rkhunter.
Dziewiąte polecenie: gpg
Polecenie gpg (GNU Privacy Guard) jest narzędziem służącym do szyfrowania i odszyfrowywania plików. Korzysta z dwóch rodzajów kluczy. Pierwszy z nich jest to klucz publiczny, który służy do bezpiecznego szyfrowania plików. Natomiast drugi, klucz prywatny do odszyfrowania.
Standardowa składnia polecenia służąca do szyfrowania plików wygląda następująco:
gpg [opcje] -e -r <ID> <plik>
Opcja -e określa, że chcesz zaszyfrować plik.
Opcja -r określa identyfikator lub adres e-mail odbiorcy.
plik wprowadzasz nazwę pliku, który chcesz zaszyfrować.
Dla przykładu stwórzmy plik noszący nazwę tajny, a następnie zaszyfrujemy go:
touch tajny
gpg -e -r krzysiek tajny
Oczywiście, aby polecenie zadziałało, musimy mieć stworzone klucze gpg. Po wykonaniu polecenia utworzy się nowy plik z końcówką .gpg.
W celu odszyfrowania pliku korzystamy z polecenia:
gpg -d tajny.gpg
Adekwatnie utworzy się nowy plik noszący nazwę tajny.
Polecenie gpg jest bardzo przydatne i rozbudowane. Więcej informacji o nim jesteś w stanie przeczytać w podręczniku man gpg.
Podsumowanie – 9 poleceń systemu Linux
W powyższym materiale przedstawiam 9 poleceń systemu Linux, które uważam, że powinien znać każdy użytkownik czy administrator Linux. Nie wymagają one dość skomplikowanej konfiguracji, a mogą wspomóc nas w codziennych zmaganiach z konfiguracją systemową, jak i zapewnieniem bezpieczeństwa. Oczywiście nie wyczerpuje to tematu co do każdego z poleceń. O większości z nich można napisać oddzielny artykuł, a tak jak wskazałem w przypadku niektórych już na łamach naszej działalności powstały.
Chcesz wiedzieć więcej na temat administracji? Przeczytaj nasze artykuły, a także weź udział w kursach!