Jak skonfigurować profile AppArmor dla aplikacji niestandardowych w systemie SUSE SLES 15

Uwaga dotycząca wersji, sprawdzona 6 października 2026 r.: Ta procedura dotyczy systemów SUSE Linux Enterprise Server (SLES) 15 SP7 i zgodnych z nimi systemów SLE 15 korzystających z AppArmor. SUSE dokumentuje AppArmor jako zainstalowany i domyślnie uruchomiony w systemie SLES 15 SP7. SUSE Linux 16.0 usuwa AppArmor i zamiast niego używa SELinux, dlatego nie należy stosować poniższych poleceń do wersji 16.0; należy skorzystać z przewodnika porównawczego SUSE Linux 16.0 oraz dokumentacji SELinux dla tej wersji.

AppArmor to moduł bezpieczeństwa systemu Linux, który ogranicza dostęp programu. Profil to polityka dołączona do pliku wykonywalnego: może zezwalać lub blokować dostęp do plików, funkcji i innych zasobów. Ten przewodnik przeprowadzi Cię od weryfikacji platformy do wdrożenia przetestowanego profilu, z ostrożną fazą uczenia się, aby zmniejszyć ryzyko nieoczekiwanego uszkodzenia aplikacji niestandardowej.

Co należy przygotować przed utworzeniem profilu?

Jeśli aplikacja jest ważna, użyj okna testowego lub konserwacyjnego. Potrzebujesz konta administratora z nazwą sudo, rzeczywistą ścieżką wykonywalną aplikacji oraz listą typowych zadań, które wykonuje. Uwzględnij pracę w tle, uruchamianie i zamykanie, ponowne ładowanie konfiguracji, przesyłanie lub eksportowanie, zaplanowane zadania i wszelkie funkcje sieciowe. Profil poznany po jednym uruchomieniu nie może wywnioskować funkcji, których nigdy nie używasz.

Dowiedz się, gdzie aplikacja odczytuje i zapisuje dane, które konto ją uruchamia i czy uruchamia procesy pomocnicze. W miarę możliwości unikaj testowania wrażliwych danych produkcyjnych. Zapisz bieżący stan usługi i zachowaj kopię istniejącego profilu przed wprowadzeniem zmian.

Jak można sprawdzić, czy AppArmor jest dostępny w tej wersji SUSE?

Najpierw sprawdź wersję systemu operacyjnego i aktualny stan AppArmor:

cat /etc/os-release
sudo aa-status
Polecenie w terminalu pokazujące polecenie cat /etc/os-release przed sprawdzeniem wydania SUSE.
Najpierw sprawdź wersję SUSE; wyświetlone polecenie odczytuje plik identyfikacyjny systemu operacyjnego.
Polecenie w terminalu pokazujące sudo aa-status umożliwiające inspekcję załadowanych profili AppArmor.
Użyj polecenia aa-status, aby sprawdzić, czy AppArmor jest aktywny i które profile są załadowane.

Sprawdź, czy system zgłasza SLES 15 SP7 lub inną wersję, której dokumentacja obsługuje AppArmor. W systemie SLES 15 SP7 podręcznik SUSE informuje, że AppArmor jest domyślnie zainstalowany i uruchomiony. Jeśli go brakuje, SUSE dokumentuje instalację za pomocą sudo zypper in -t pattern apparmor. Jeśli usługa jest zainstalowana, ale nie działa, sprawdź zasady uruchamiania systemu i stan usługi przed jej włączeniem; nie wyłączaj modułu zabezpieczeń, aby obejść problem z aplikacją. Szczegółowe informacje dotyczące poszczególnych wersji można znaleźć w podręczniku wprowadzającym do AppArmor dla SLES 15 SP7 oraz w podręczniku narzędzi wiersza poleceń AppArmor dla SLES 15 SP7 .

Jak zidentyfikować plik wykonywalny, który powinien być profilowany przez AppArmor?

Profile AppArmor są powiązane ze ścieżkami programów, dlatego należy zidentyfikować rzeczywisty plik wykonywalny, zamiast zakładać, że polecenie wpisane przez użytkownika jest plikiem binarnym. Aby uzyskać polecenie dostępne za pośrednictwem ścieżki powłoki, uruchom:

command -v myapp
Polecenie terminala command -v myapp służy do lokalizowania pliku wykonywalnego aplikacji.
Zastąp polecenie myapp poleceniem application i potwierdź ustaloną ścieżkę wykonywalną przed jej profilowaniem.

W przypadku usługi sprawdź definicję jej jednostki i szczegóły procesu, korzystając z narzędzi dostępnych w systemie. Skrypt programu uruchamiającego, dowiązanie symboliczne lub interpreter może prowadzić do innego pliku wykonywalnego niż oczekiwano. readlink -f /path/to/myappW razie potrzeby rozwiąż znaną ścieżkę za pomocą . W każdym poniższym poleceniu zastąp zweryfikowaną ścieżkę bezwzględną; /usr/local/bin/myappto tylko przykład.

Przed profilowaniem sprawdź, czy profil już istnieje w /etc/apparmor.d. SUSE przechowuje tam profile, a nazwa pliku zazwyczaj zastępuje ukośniki w ścieżce wykonywalnej kropkami. Na przykład, /usr/local/bin/myappmapowanie do nazwy pliku, takiej jak usr.local.bin.myapp. Nie nadpisuj istniejącego profilu dostawcy ani profilu zarządzanego lokalnie bez jego przejrzenia. SUSE wymienia również dodatkowe profile w /usr/share/apparmor/extra-profiles; odpowiedni profil może stanowić punkt wyjścia, ale nadal wymaga przeglądu pod kątem Twojej aplikacji i wydania ( dokumentacja repozytorium profili SUSE ).

Jak bezpiecznie utworzyć profil początkowy?

Uruchom narzędzie do generowania profili jako administrator, korzystając z pełnej ścieżki wykonywalnej:

sudo aa-genprof /usr/local/bin/myapp
Polecenie terminala sudo aa-genprof /usr/local/bin/myapp, aby rozpocząć tworzenie początkowego profilu AppArmor.
Uruchom aa-genprof ze zweryfikowaną ścieżką wykonywalną. Podana ścieżka jest przykładem ścieżki do zastąpienia.

aa-genprofTworzy profil startowy i przełącza program w tryb zgłaszania na czas jego wykonywania. Tryb zgłaszania rejestruje naruszenia zasad, ale nie blokuje zabronionych operacji, co pozwala na obserwację zachowania przed ich wyegzekwowaniem. Postępuj zgodnie z instrukcjami narzędzia; po uruchomieniu aplikacji użyj opcji skanowania, aby przejrzeć zarejestrowane zdarzenia. SUSE opisuje to jako proces iteracyjny, a nie gwarancję, że automatycznie sugerowany profil jest kompletny.

Które działania należy przetestować i gdzie można znaleźć odmowy?

Gdy profil jest w trybie skargi, korzystaj z aplikacji tak, jak robiłby to normalny operator. Przetestuj standardowe przepływy pracy oraz rzadsze, ale obsługiwane zadania, takie jak odczyt, zapis, przesyłanie, generowanie raportów, ponowne uruchamianie usług i zadania pomocnicze. Zachowaj realizm testu: program może używać innych plików lub procesów podrzędnych do eksportu niż do ekranu głównego.

Przejrzyj komunikaty jądra i dziennik audytu pod kątem zdarzeń AppArmor:

sudo journalctl -k | grep -i apparmor
Polecenie terminala journalctl -k przekazane do grep -i apparmor umożliwia przejrzenie komunikatów jądra AppArmor.
Po uruchomieniu programu sprawdź komunikaty jądra pod kątem zdarzeń AppArmor; to polecenie wyświetla pasujące wpisy, jeśli takie istnieją.

W zależności od konfiguracji logowania w systemie, SUSE wskazuje również na /var/log/audit/audit.log, journalctl | grep -i apparmori dmesg -T. Brak dopasowania w jednym widoku logu nie dowodzi poprawności profilu: sprawdź, czy aplikacja została przetestowana i sprawdź usługę logowania oraz inne udokumentowane lokalizacje logów. Nie traktuj wygenerowanego profilu jako przetestowanego tylko dlatego, że aplikacja została uruchomiona tylko raz.

Jak należy przeglądać i udoskonalać profil?

Jako root użyj tego polecenia, aa-logprofaby przetworzyć zarejestrowane zdarzenia i odpowiedzieć na monity:

sudo aa-logprof
Polecenie terminala sudo aa-logprof umożliwia przeglądanie zarejestrowanych zdarzeń AppArmor i reguł profilu.
Użyj polecenia aa-logprof, aby przeanalizować zaobserwowane dostępy i zdecydować, które z nich należą do zasad aplikacji.

Dla każdego zdarzenia należy zapytać, czy dostęp jest niezbędny do wykonania udokumentowanego zadania aplikacji. Należy zezwolić tylko na wąską ścieżkę, tryb dostępu lub możliwości wymagane przez program. Można się spodziewać odczytu pliku konfiguracyjnego; nieplanowany zapis do niepowiązanego katalogu może sygnalizować błąd lub konieczność zbadania oddzielnego komponentu. Zbyt szerokie reguły osłabiają ograniczenie, a zbyt wąskie mogą powodować awarie prawidłowych zadań.

  • Nie akceptuj automatycznie każdego monitu i nie dodawaj ogólnego dostępu do wszystkich plików.
  • Unikaj szerokich symboli wieloznacznych i zbędnych uprawnień; preferuj precyzyjną ścieżkę i najmniejsze wymagane uprawnienia.
  • Powtórz cykl przeglądu obciążenia i dziennika po edycji profilu. Uwzględnij oddzielne operacje serwisowe i zadania w tle.
  • Ogranicz zmiany do aplikacji docelowej; nie dokonuj niezwiązanych z aplikacją edycji profilu w celu wyciszenia szumów.

Profil stanowi granicę kontroli dostępu, dlatego na pytanie należy odpowiedzieć na podstawie zachowania aplikacji i wymagań operacyjnych, a nie tylko dlatego, że pojawiło się w logu. Podręcznik narzędzi wiersza poleceń AppArmor dla systemu SUSE SLES 15 SP7 wyjaśnia narzędzia wiersza poleceń, a odnośniki do pomocy technicznej SUSE AppArmor zawierają linki do odpowiednich stron podręcznika, takich jak aa-genprof, aa-logprofi apparmor_parser.

Kiedy należy przełączyć profil w tryb wymuszania?

Przechodź do egzekwowania dopiero po pomyślnym zakończeniu reprezentatywnych przepływów pracy i sprawdzeniu prawidłowych zdarzeń. Wyegzekwuj jeden profil aplikacji, przeładuj zestaw profili AppArmor i uruchom ponownie aplikację lub usługę, aby uruchomiony proces korzystał z zaktualizowanej polityki:

sudo aa-enforce /usr/local/bin/myapp
sudo systemctl reload apparmor
Polecenia terminalowe aa-enforce dla przykładowej aplikacji, a następnie systemctl reload apparmor.
Zastosuj wymuszenie do profilu docelowego, a następnie ponownie załaduj AppArmor i zastąp przykładową ścieżkę zweryfikowanym plikiem wykonywalnym.

SUSE zauważa, że ​​ponowne wczytanie profili w /etc/apparmor.dprogramie może wymagać ponownego uruchomienia, zanim zaktualizowany profil zacznie obowiązywać. Należy skoordynować ponowne uruchomienie z właścicielem usługi i użyć właściwego polecenia service-management dla danej aplikacji. Następnie należy powtórzyć kluczowe przepływy pracy w ramach egzekwowania, zamiast zakładać, że powodzenie w trybie narzekania dowodzi, że będą one działać bez zmian.

Jak zweryfikować wynik i wyjść z regresji?

Sprawdź stan profilu i poszukaj nowych odmów po przeprowadzeniu testów:

sudo aa-status
sudo journalctl -k | grep -i apparmor
Polecenia terminalowe aa-status i journalctl -k są filtrowane dla AppArmor po wymuszeniu profilu.
Zweryfikuj załadowany profil i przejrzyj nowe wiadomości AppArmor po uruchomieniu aplikacji w trybie wymuszania.

Upewnij się, że zamierzony profil jest załadowany i działa w trybie wymuszania, usługa pozostaje sprawna, a wszystkie wymagane zadania nadal działają. Jeśli wymuszanie blokuje prawidłową operację, zbierz odpowiednie zdarzenie, sprawdź, czy dostęp jest rzeczywiście wymagany i doprecyzuj profil. Aby przeprowadzić krótką, kontrolowaną diagnozę, sudo aa-complain /usr/local/bin/myappmożesz przełączyć profil programu w tryb narzekania; zbadaj go, zaktualizuj i przetestuj ponownie przed przywróceniem wymuszania za pomocą aa-enforce. Przeładuj i uruchom ponownie w razie potrzeby. Unikaj globalnego wyłączania AppArmor lub udzielania szerokich uprawnień jako szybkiego rozwiązania.

Jakich typowych błędów należy unikać?

  • Użycie niewłaściwych instrukcji wydania: w tym przypadku przepływ pracy dotyczy SLES 15 AppArmor. Zgodnie z przewodnikiem porównawczym SUSE, SUSE Linux 16.0 używa SELinux.
  • Profilowanie opakowania zamiast rzeczywistego programu: weryfikuj plik wykonywalny, który faktycznie działa, szczególnie w przypadku usług i skryptów.
  • Zbyt mała wiedza: nieprzetestowane funkcje nie generują zaobserwowanych dostępów, więc niekompletny profil może później okazać się nieskuteczny.
  • Zatwierdzanie monitów bez kontekstu: każde dodane uprawnienie powinno obsługiwać wymagane zadanie aplikacji.
  • Zapominanie o ponownym uruchomieniu: załaduj ponownie profile, a następnie uruchom ponownie działającą aplikację, gdy będzie to konieczne, aby proces zastosował politykę.
  • Edycja bez ścieżki przywracania: twórz kopie zapasowe lokalnie obsługiwanych profili i śledź zmiany w systemie kontroli wersji lub procesie zarządzania konfiguracją.

Oficjalne odniesienia SUSE

Odniesienia te sprawdzono 6 października 2026 r. Polecenia i szczegóły pakietów mogą się różnić w zależności od wersji produktu. Przed wprowadzeniem zmian należy sprawdzić dokumentację dotyczącą konkretnego zainstalowanego pakietu serwisowego SLES.

Zostaw komentarz

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Dowiedz się, jak odzyskać utracone partycje i pliki za pomocą TestDisk i PhotoRec. Zabezpiecz dysk źródłowy, przeskanuj go bezpiecznie i zapisz odzyskane dane na innym dysku.

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Skanuj kody QR w systemie Linux za pomocą CoBang, używając kamery internetowej lub pliku obrazu. Zobacz opcje instalacji, kroki konfiguracji i poprawki dotyczące dostępu do kamery Flatpak.

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Zmień ustawienia kamery internetowej w systemie Linux za pomocą narzędzia Cameractrls: dostosuj ekspozycję, kolor, redukcję migotania i inne obsługiwane elementy sterujące, a następnie sprawdź zgodne tryby wideo.

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Zainstaluj PhpStorm na Linuksie za pomocą JetBrains Toolbox lub samodzielnego archiwum tar.gz, a także opcji Snap i Arch AUR. Java jest już dołączona.

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Usuń tło zdjęcia w systemie Linux za pomocą programu GIMP: narysuj obiekt, usuń wybrane tło, zachowaj przezroczystość i wyeksportuj plik PNG, który można ponownie wykorzystać.

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Utwórz obraz ISO płyty CD-ROM w systemie Linux za pomocą GNOME Disks lub dd. Zidentyfikuj napęd optyczny, monitoruj kopiowanie, zweryfikuj obraz i dowiedz się, kiedy uszkodzona płyta lub płyta audio wymaga użycia innego narzędzia.

Jak skonfigurować dwa panele w środowisku XFCE 4

Jak skonfigurować dwa panele w środowisku XFCE 4

Utwórz oddzielny panel XFCE 4 dla każdego wyświetlacza, przypisz drugi panel do odpowiedniego wyjścia, określ jego położenie i rozmiar, a następnie dodaj potrzebne elementy uruchamiające i statusu.

Jak zainstalować Cisco Packet Tracer w systemie Linux

Jak zainstalować Cisco Packet Tracer w systemie Linux

Pobierz Cisco Packet Tracer 9.0.1 dla systemu Ubuntu 64-bit, zainstaluj pakiet DEB za pomocą APT, zaakceptuj licencję w terminalu i zaloguj się, aby rozpocząć laboratorium.

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo z oficjalnej strony. Porównaj pakiety dla systemów Windows, macOS i Linux, zainstaluj pliki danych i rozpocznij swój pierwszy lot.

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler mapuje klipy MP3 na klawisze klawiatury i umożliwia zapętlanie dźwięku. Dowiedz się, co robi ten starszy, darmowy program, gdzie kończą się jego stare funkcje i co sprawdzić przed pobraniem.