Instalacja i konfiguracja Slackware

  1. Od instalacji do bezpieczeństwa
  2. Instalowanie i usuwanie pakietów
  3. Informacje o pakiecie
  4. Łaty
  5. Katalog ./usr/local/bin
  6. Bezpieczeństwo
  7. Testy
  8. I tak dalej ...
  9. Zasoby
W tym artykule opisano dwie grupy skryptów: pierwszy służy do instalowania i usuwania poszczególnych pakietów, drugi do konfigurowania zabezpieczeń.Oba są zaprojektowane dla Slackware Linux.Narzędzia do instalowania i usuwania pakietów nie są tak zaawansowane jak programy z SlackPkg lub Packware, ale dają pełną kontrolę nad systemem.To samo dotyczy skryptów konfiguracji zabezpieczeń.Wykonują tylko podstawowe operacje.Zebraliśmy oba zestawy luzu * więcej.

[Cezary M Kruk. Tłumaczenie Andrey Romanychev]

Autor: Cezary M Kruk
Tłumaczenie: Andrey Romanchev

Ten artykuł został przetłumaczony przez autora z języka polskiego. Oryginał zostanie opublikowany w letniej edycji. CHIP Special Linux .

[Wyd.- Specyfikacja: z polskiego na angielski.Więc dostała się do Linux Gazette i dopiero po tym została przetłumaczona na rosyjski.Jeśli wszystko to zostanie przetłumaczone na język polski, autor może nie rozpoznać swojego artykułu.;-)]

Ilekroć pojawia się nowa wersja twojej dystrybucji, zawsze pojawia się to samo pytanie: „Odłóż wszystko od podstaw, spróbuj zaktualizować system lub kontynuować pracę z tym, czego tak długo używałeś?”

Rozważ dwa skrajne przypadki: instalacja i konfiguracja systemu od podstaw pozwoli Ci zobaczyć i wykorzystać wszystkie jego nowe właściwości, pozostawiając stary system, możesz być pewien, że będziesz kontynuował pracę nad swoimi projektami bez żadnych zakłóceń. Zwykła walka między innowacją a stabilnością.

Podstawowa konfiguracja systemu nie jest skomplikowana. Ale im więcej z tego chcesz, tym więcej wysiłku będziesz musiał wykonać. Czy możliwe jest uproszczenie instalacji i konfiguracji? Kompletna i dobrze rozwinięta baza danych zawierająca informacje o zmianach wprowadzonych w poprzedniej wersji systemu znacznie ułatwia konfigurację nowej wersji. Gromadzenie informacji nie jest trudne, ale przywrócenie starej konfiguracji wymaga dużo wysiłku. Jak można to zautomatyzować i uprościć?

Na szczęście Linux przechowuje informacje o ustawieniach poszczególnych usług w plikach tekstowych. Ponadto istnieje cały zestaw narzędzi do przetwarzania takich plików. Dlatego po prostu przygotuj niezbędne skrypty i korzystaj z nich, gdy będziesz musiał ponownie zainstalować system.

Od instalacji do bezpieczeństwa

W tym artykule opisano dwie grupy skryptów: pierwszy służy do instalowania i usuwania poszczególnych pakietów, drugi do konfigurowania zabezpieczeń. Oba są zaprojektowane dla Slackware Linux. Narzędzia do instalowania i usuwania pakietów nie są tak zaawansowane jak programy z SlackPkg lub Packware, ale dają pełną kontrolę nad systemem. To samo dotyczy skryptów konfiguracji zabezpieczeń. Wykonują tylko podstawowe operacje. Zebraliśmy oba zestawy luzu * więcej.

Biorąc je za podstawę, możesz przygotować inne narzędzia do automatyzacji procesu konfigurowania dowolnej usługi lub programu. Jeśli zdecydujesz się nie konfigurować systemu ręcznie, ale zamiast tego sekwencyjnie uzupełnisz skrypty odpowiednimi funkcjami, wkrótce otrzymasz własny zestaw programów konfiguracyjnych. Co więcej, skoro sam wykonałeś te skrypty, będą one idealne do Twoich potrzeb.

Jako przykład użyjemy Slackware Linux, ponieważ ta dystrybucja powoduje, że użytkownicy bezpośrednio zmieniają pliki konfiguracyjne. Inne dystrybucje Linuksa, oferujące w tym celu złożone programy, utrzymują użytkownika z dala od plików konfiguracyjnych. Dlatego też sprawiają, że użytkownicy są leniwi lub zmuszają ich do prowadzenia złożonych badań w celu ustalenia, co i gdzie „przyjazne programy” rzeczywiście zmieniły się w ich systemie.

[Wyd.- „Jaka rosyjska radość, potem niemiecka śmierć”.Użytkownik ciekawego (studiującego użytkownika) - niech wybaczą mi łacińscy eksperci, będzie zadowolony z tego podejścia, po prostu tego potrzebuje.Ale dla zwykłych śmiertelników, których komputer jest narzędziem do pracy, a nie środkiem do poznawania świata, taka funkcja jest bezużyteczna.Ona go tylko przeraża.Ponadto autor trochę żongluje - duch pojedynczego rejestru plików konfiguracyjnych Linux nadal wędruje po świecie.Pozwól mu dalej wędrować i do tego czasu każdy może ominąć programy konfiguracyjne, wykonać ręczne strojenie.]

Slack * more jest podzielony na dwie części. INSTALL.tgz zawiera narzędzia do instalowania, odinstalowywania i aktualizowania programów, SECURE.tgz - narzędzia do wstępnego ustawiania zabezpieczeń.

Rysunek 1. Za pomocą SCRIPT.sh z katalogu ./Slackware-9.0 generowane są listy pakietów poszczególnych grup. Na zrzucie ekranu pakiety z grupy d (programowanie)

Instalowanie i usuwanie pakietów

Najważniejsze elementy pakietu INSTALL.tgz to skrypt INSTALL.sh i katalog ./Slackware-9.0, który zawiera SCRIPT.sh i plik Slackware.

Aby zainicjować te narzędzia, musisz zamontować dysk instalacyjny ze Slackware do / mnt / cdrom i uruchomić SCRIPT.sh z ./Slackware-9.0. Skrypt zeskanuje katalogi na CD-ROM i, kierując się znajdującymi się tutaj plikami tagów, utworzy pliki zawierające informacje o pakietach (Rysunek 1.). Każdy plik będzie miał nazwę odpowiadającą nazwie jego grupy. Na przykład w pliku e używanym do budowania Emacsa znajdziesz między innymi następujące wpisy:

emacs: ADD emacs-misc: REC emacs-nox: OPT

Użytkownicy znający Linux Slackware wiedzą, że kategoria ADD wskazuje pakiety potrzebne do tego programu, kategoria REC oznacza zalecane pakiety, a kategoria OPT opcjonalna.

Jeśli masz takie informacje, możesz zdecydować, których komponentów potrzebujesz i jakich komponentów nie potrzebujesz. Jeśli więc zmienisz powyższy plik w następujący sposób:

emacs: ADD # emacs-misc: REC! emacs-nox: OPT

pakiet emacs zostanie zainstalowany, emacs-misc zostanie pominięty, a emacs-nox zostanie nie tylko pominięty, ale także usunięty, jeśli został wcześniej zainstalowany.

Plik Slackware z katalogu ./Slackware-9.0 zawiera informacje o grupach pakietów:

a ap ...

Zgodnie z tym plikiem skrypt zdecyduje, co zrobić z grupami pakietów. Jeśli zmienisz ten plik w następujący sposób:

a ap #d! ef ...

grupa d zostanie pominięta, a każdy pakiet z poprzednio zainstalowanej grupy e zostanie usunięty.

Tak więc, jeśli umieścisz przed nazwą pakietu # - zostanie on pominięty; jeśli! - Odpowiednie komponenty zostaną usunięte z systemu. Jeśli pakiet lub grupa pakietów nie została jeszcze zainstalowana, # i! są równoważne. Wpisy z pliku Slackware mają wyższy priorytet niż pliki grup zawierające nazwy pakietów. Jeśli więc nie zdecydujesz się na umieszczenie całej grupy pakietów lub usunięcie pakietów, które są w niej zawarte, skrypt zrobi to bez zwracania uwagi na informacje zapisane w plikach zawierających nazwy poszczególnych pakietów.

Kiedy przygotowujesz plik Slackware i pliki zawierające informacje o poszczególnych pakietach, możesz uruchomić skrypt INSTALL.sh. Dodaje lub usuwa odpowiednie składniki systemu. Jeśli jest to pierwsza instalacja Slackware i system nie został jeszcze poprawnie skonfigurowany, dobrze byłoby zoptymalizować wydajność dysku twardego używanego do instalacji. W tym celu możesz użyć skryptów INSTALL.hda lub INSTALL.hdb. Po tym proces instalacji lub usuwania pakietów będzie szybszy.

INSTALL.sh jest przeznaczony do użytku uniwersalnego. Używając go, możesz ukończyć podstawową instalację Slackware. Wystarczy zainstalować pakiety grupy a , najpierw używając programu instalacyjnego Slackware, a następnie powierzyć pracę skryptowi, komentując nazwy pakietów, których nie potrzebujesz, i wywołując INSTALL.sh, zainstaluj pozostałe.

Informacje o pakiecie

W katalogu ./Packages jest inny SCRIPT.sh. Jeśli zamontujesz CD-ROM Slackware i uruchomisz ten skrypt, zostaną utworzone katalogi zawierające pliki z informacjami o każdym pakiecie systemowym. Taka baza danych jest wygodna, ponieważ nie trzeba montować dysku za każdym razem, aby ustalić przeznaczenie pakietu. Utworzenie takiej bazy danych nie jest konieczne, jeśli zdecydujesz się całkowicie zainstalować Slackware Linux. Następnie możesz znaleźć opis wszystkich pakietów w / var / log / packages.

Łaty

W katalogu ./Patches znajdują się dwa skrypty. Aby zacząć, należy uruchomić 0.check. Sprawdzi serwer sunsite.icm.edu.pl pod kątem aktualizacji Slackware 9.0 i utworzy następujące pliki: Packages.html z informacjami o aktualizacji i Packages.txt z nazwami pakietów:

mutt-1.4.1i-i386-1 sendmail-8.12.9-i386-1 sendmail-cf-8.12.9-noarch-1

Skrypt 1.get użyje Packages.txt do pobrania samych programów oraz odpowiednich plików .txt i .tgz.asc. Aby to zrobić, używa komendy wget -c -t0, więc nie możesz się obawiać, że ponownie pobierzesz te same pliki. Z drugiej strony, sprawdzenie, czy plik został już pobrany lub nie, zajmuje trochę czasu i najlepszym rozwiązaniem byłoby wyświetlenie Packages.txt przed uruchomieniem 1.get i usunięcie stamtąd pakietów, które zostały zainstalowane lub nie są potrzebne.

Możesz zmienić polecenie pobierania plików na wget -c -t0 -b. Następnie wszystkie pliki zostaną pobrane z serwera w tym samym czasie - w tle. Pamiętaj, że nie każdy serwer pozwala na wykonywanie równoczesnych połączeń. Jeśli sunsite.icm.edu.pl nie spełni twoich potrzeb, możesz napisać inny host w skryptach 0.check i 1.get (zobacz edycję listy mirrorów, którą możesz znaleźć na http://alphageek.dyndns.org/ linux / slackware-mirrors.shtml) . Następnie możesz zmodyfikować polecenie generujące plik Packages.txt na podstawie Packages.html. Początkowo jest to następujące polecenie:

cat Packages.html | grep ".tgz.asc" | sed / .tgz.asc // g '| sed /.* A HREF = "// '| sed' s /">. * // '> Packages.txt

Script 1.get rejestruje informacje tylko o niektórych pakietach. Duża liczba aktualizacji dla Slackware znajduje się w oddzielnych katalogach (kde, kdei itp.). Jeśli chcesz je pobrać, musisz to zrobić ręcznie lub odpowiednio zmodyfikować skrypt źródłowy.

Katalog ./usr/local/bin

Plik ./usr/local/bin zawiera skrypt catpkg, który ułatwia przeglądanie plików w / var / log / packages. INSTALL.sh całkowicie kopiuje zawartość pliku ./usr/local/bin do podobnego katalogu systemowego. Dlatego możesz umieścić tutaj różne skrypty, których chcesz używać po raz pierwszy, pracując z systemem.

Rysunek 2. Skrypt SECURE.sh usuwa bity SUID i SGID z wybranych plików i wyświetla je

Bezpieczeństwo

Głównym skryptem w archiwum SECURE.tgz jest SECURE.sh. Wykonuje następujące zadania:

  • W pliku /etc/login.defs ustawia zmienną PASS_MAX_DAYS na 182. Z tego powodu hasło dla nowych użytkowników będzie ważne tylko przez sześć miesięcy.

  • W pliku / etc / profile ustawia wartość zmiennej HISTFILESIZE na 100. Z tego powodu historia poleceń będzie ograniczona do 100 linii.

  • W pliku /root/.bashrc ustawia wartość zmiennej TMOUT na 900. Z tego powodu nieaktywna sesja główna zostanie zamknięta po 15 minutach.

    (Ed. Uwaga - Ale jeśli interaktywny program jest otwarty w konsoli, to ten klucz nie zadziała. Sprawdzono, czy jest to mc, tak jest w przypadku innych programów.)

  • Komentarze w /etc/inetd.conf wszystkie nieskomentowane, ale potencjalnie niebezpieczne usługi sieciowe.

  • Dodaje wpis ALL: ALL @ ALL do /etc/hosts.deny, aby zablokować cały zewnętrzny dostęp do systemu.

  • Dodaje ALL: [email protected]: POZWALA na wpis do /etc/hosts.allow, umożliwiając dostęp do lokalnych zasobów komputera.

  • W pliku /etc/host.conf zmienia kolejność hostów, wiąże się z bezpieczniejszym wiązaniem zamówień, sekwencją hostów i dodaje linię nospoof.

  • W pliku / etc / securetty blokuje dostęp użytkownika root do wszystkich konsol z wyjątkiem / dev / tty1.

  • Usuwa z pliku / etc / group wiadomości i grupy uucp, które w większości przypadków nie są potrzebne. Jest to równoznaczne z uruchomieniem komend groupdel news i groupdel uucp.

  • Usuwa użytkowników wiadomości, uucp, operatora, synchronizacji i zamknięcia z pliku / etc / passwd. Jest to równoznaczne z sekwencyjnym wykonaniem polecenia userdel z odpowiednimi parametrami.

  • Powtarza kroki z poprzedniego elementu pliku / etc / shadow.

  • W pliku / etc / inittab komentuje linię ca :: ctrlaltdel: / sbin / shutdown. Z tego powodu kombinacja Ctrl-Alt-Delete nie powoduje ponownego uruchomienia komputera.

  • Usuwa wszystkie skrypty z katalogu /etc/rc.d z uprawnieniami do odczytu i wykonywania dla użytkowników nieuprzywilejowanych.

  • Dodaje kilka poleceń do /etc/rc.d/rc.local, które włączają lub wyłączają różne usługi. Aby te polecenia działały, musisz dodać moduł IP do jądra : obsługa synchronizacji TCP .

  • Sprawdza kilkadziesiąt programów problemowych i usuwa z nich bity SUID. Informacje o zmianach są zapisywane w pliku dziennika (Rysunek 2).

  • Wykonuje te same akcje dla dziesiątek linków do programów, usuwając z nich bity SUID i SGID.

  • W pliku /etc/mail/sendmail.cf dodaje wpisy O PrivacyOptions = noexpn i O PrivacyOptions = novrfy. Zapobiega to zdalnej weryfikacji kont.

  • Kopiuje do katalogu /etc/cron.daily skrypt, który automatycznie usuwa różne tymczasowe katalogi i pliki.

  • Kopiuje kilka przydatnych skryptów do katalogu / root / bin.

Działania te znacznie zwiększą bezpieczeństwo systemu, chociaż są to tylko podstawowe kroki w celu ochrony przed możliwym włamaniem. Skrypt SECURE.sh został napisany z uwzględnieniem ponownego uruchomienia. Dlatego możesz dodać dowolne funkcje do skryptu i zastosować je bez żadnych problemów.

Skrypt modyfikuje różne usługi, ale nie uruchamia ich ponownie. Aby zastosować ustawienia z /etc/inetd.conf, użyj komendy killall -HUP inetd. Aby uruchomić zmodyfikowany plik / etc / inittab, wydaj polecenie init q. Aby ponownie uruchomić sendmail, użyj komendy /etc/rc.d/rc.sendmail restart lub komendy kill -HUP `head -1 / var / run / sendmail.pid`.

[Wyd.- Jeszcze lepiej dodaj skrypt o nazwie service (podobny do tego, który jest używany w pakiecie usług w niektórych dystrybucjach opartych na rpm):
#! / bin / sh /etc/rc.d/rc.$1 $ 2Lub nazwij to jeszcze krótszym - srv.Następnie możliwe będzie ponowne uruchomienie za pomocą polecenia: srv sendmail restart Bardzo wygodne, nie musisz za każdym razem wpisywać ścieżki /etc/rc.d.Tylko z prawami nie zadzieraj: chmod 700 srv lub nawet 500. ]

Możesz dołączyć te polecenia do skryptu, ale pociągnie to za sobą potencjalne ryzyko, o którym musisz pamiętać. Jeśli popełnisz mały błąd podczas wywoływania programu sed, zamiast modyfikować etc / inittab, otrzymujesz pusty plik, w wyniku czego po ponownym uruchomieniu init tracisz dostęp do systemu i musisz ręcznie przywrócić / etc / inittab z kopii używając Linuksa zainstalowanego na innym partycja lub dysk. Nie zawsze jest to miłe, zwłaszcza jeśli nie masz innej partycji z Linuksem.

Rysunek 3. Wyświetlanie dużych plików. Jak widać, znaczna część z nich jest zajęta przez pliki OpenOffice.org zainstalowane w katalogu / opt, a także pliki RealPlayer i Pingus.

Testy

Skrypt TEST-SECURE.sh wyszukuje w systemie pliki następujących typów:

  • Ustawiono pliki z bitami SUID lub SGID.

  • Duże i stare pliki (więcej niż 1 MB, zmodyfikowane lub używane ostatnio 3 miesiące temu lub wcześniej).

  • Bardzo duże pliki (rysunek 3.).

  • Pliki bez powiązania z użytkownikiem lub grupą istniejącą w systemie.

Informacje o każdej kategorii takich plików są zapisywane w pliku dziennika. Ponadto TEST-SECURE.sh wykorzystuje wyniki skryptu SECURE.sh, pokazując zawartość pliku dziennika z informacjami o programach bez bitów SUID lub SGID.

Ponieważ nie zawsze jest konieczne uruchamianie wszystkich tych testów razem, w katalogu / root / bin znajdziesz skrypty 1.suid, 2.huge + old, 3.huge i 4.nobody. Każdy z nich wykonuje tylko jeden test.

I tak dalej ...

Rozszerzenie SECURE.sh z innymi funkcjami odpowiedzialnymi za instalowanie i konfigurowanie dalszych możliwości ochrony będzie bardzo dobrym posunięciem. Na tej podstawie możesz dodać następujące skrypty, aby skonfigurować inne usługi: konfigurowanie kont użytkowników, konfigurowanie sieci, serwerów poczty e-mail i WWW oraz klientów, środowisko X Window itp. Wszystko jest ograniczone tylko twoją wyobraźnią, ponieważ Linux pozwala zarządzać prawie wszystkim. A kiedy skończysz tworzyć te skrypty, będziesz mógł dostosować cały system dokładnie do swoich potrzeb, naciskając kilka razy klawisz Enter.

Zasoby

Zwolnij * więcej:

freshmeat.net/projects/slackmore

SlackPkg:

freshmeat.net/projects/slackpkg

Packware (polska strona):

hacking.pl/packware.php

Cezary mieszka w Polsce, we Wrocławiu. Jest redaktorem polskiej edycji. CHIP Special Linux .

Copyright © 2003, Cezary M Kruk. Licencja na kopiowanie http://www.linuxgazette.com/copying.html
Opublikowano w wydaniu 91 Linux Gazette , czerwiec 2003

Tłumaczenie można znaleźć pod adresem: http://gazette.linux.ru.net/lg91/kruk.html .

[opublikowano 31.07.2004]

Cezary M Kruk. Tłumaczenie Andrei Romanychev - Instalacja Slackware i Ustawienia zabezpieczeń Wersja do druku

Ilekroć pojawia się nowa wersja twojej dystrybucji, zawsze pojawia się to samo pytanie: „Odłóż wszystko od podstaw, spróbuj zaktualizować system lub kontynuować pracę z tym, czego tak długo używałeś?
Czy możliwe jest uproszczenie instalacji i konfiguracji?
Jak można to zautomatyzować i uprościć?