UFW mówi, że nie znajduje profilu pasującego do OpenSSH, a poszukiwanie przyczyny prowadzi prosto do serwera SSH. To zły kierunek: komunikat dotyczy nazwanej definicji zapory i nic nie mówi o tym, czy sshd jest zainstalowany, uruchomiony czy nasłuchuje. Profil aplikacji UFW to lista portów i protokołów z etykietą. Przeczytanie definicji zajmuje jedno polecenie i zwykle kończy dochodzenie.

Krok 1: wypisz nazwy, które UFW naprawdę zna

Zanim poprosisz o zezwolenie na jedną z nich, zapytaj zaporę, jakie nazwy ma. Lista pochodzi z profili zainstalowanych na tej maszynie, więc brakująca nazwa jest faktem o tym systemie, a nie o oprogramowaniu, które próbowałeś chronić. Jeśli nazwa istnieje, błąd pochodzi z literówki lub nieaktualnego aliasu w historii twojej powłoki.

ufw app list
ufw app info OpenSSH

Lista jest krótka w instalacji domyślnej, a nazwy nie są nazwami pakietów. Profil o nazwie OpenSSH może nie istnieć, choć pakiet openssh-server jest zainstalowany, i odwrotnie też jest to możliwe. Użyj dokładnej nazwy, którą wypisuje lista; nazwa profilu VPN lub launcher pulpitu o podobnej pisowni nie jest profilem aplikacji UFW. Jeśli brakuje nazwy, której chcesz, to jest ustalenie, a następnym krokiem jest sprawdzenie, co powinno ją dostarczyć.

Krok 2: czytaj definicję, nie etykietę

Profil to plik w stylu INI w /etc/ufw/applications.d, z nazwą, tytułem, opisem i polem portów. Pole portów może wymieniać kilka portów i transportów, więc etykieta mówi mniej niż definicja. Podręcznik UFW dokumentuje te pola i operację aktualizacji aplikacji. Czytaj plik zamiast zakładać, że nazwa oznacza jeden znany port.

cat /etc/ufw/applications.d/openssh-server
ufw app info OpenSSH

Definicja zawierająca 22/tcp opisuje port TCP 22 i nic więcej. Nie dowodzi, że usługa na tej maszynie tam nasłuchuje, i nie obejmuje drugiego portu dodanego później. Jeśli usługa działa gdzie indziej, profil jest złym zezwoleniem, nawet jeśli jego nazwa pasuje do produktu. Porównaj nasłuchującego z definicją, zanim zezwolisz na którykolwiek z nich.

ss -ltnp 'sport = :22'

Zatrzymaj się, jeśli definicja i nasłuchujący się nie zgadzają. Zezwolenie profilowi, który nazywa port, na którym nikt nie nasłuchuje, tworzy regułę wyglądającą jak postęp i niczego nie chroniącą.

Krok 3: oddziel profil od działającej usługi

Zezwolenie nazwanemu profilowi nie instaluje, nie uruchamia ani nie konfiguruje usługi, a działająca usługa nie potrzebuje zapakowanego profilu, aby być osiągalna. To odrębne decyzje należące do różnych narzędzi: menedżera pakietów, menedżera usług i zapory. Traktowanie ich jako jednego to sposób, w jaki ludzie instalują niechciany serwer, aby pojawiła się symboliczna nazwa.

Dla serwera VPN rozdzielenie trwa po zezwoleniu zewnętrznemu nasłuchującemu. Zezwolenie na port zaszyfrowanego transportu nie włącza przekazywania w jądrze, nie dodaje reguły NAT i nie daje użytkownikom tunelu dostępu do LAN. Każde z nich to osobna polityka z własnym przeglądem. Profil nazwany od produktu VPN opisuje tylko wymienione porty, a resztę konfiguracji serwera wciąż piszesz sam.

Jeśli profilu brakuje i go potrzebujesz, sprawdzona jawna reguła portu albo lokalny profil w applications.d są oba legitimne. Instalowanie pakietu, którego nie chciałeś, nie jest.

Krok 4: zachowaj drogę powrotną, zanim wczytasz zaporę ponownie

Przed każdą zmianą reguły potwierdź, że masz drugą drogę do maszyny: konsolę, adres poza pasmem lub zaplanowany powrót. Następnie przeczytaj zestaw reguł i politykę domyślną, bo domyślna odmowa bez reguły SSH to klasyczny sposób na zamknięcie się na zewnątrz podczas testów. Zmieniaj jedną regułę naraz i czytaj potwierdzenie, które wypisuje UFW. Zapisana reguła, aktywna reguła i osiągalna usługa to trzy różne obserwacje.

ufw status verbose
ufw allow 22/tcp
ufw app update OpenSSH

Po zmianie przetestuj dozwolone połączenie i jedną drogę, która nadal powinna być odmawiana. Test odmowy jest tak samo ważny jak test zezwolenia, bo reguła szersza niż zamierzona przechodzi pierwszy test i zawodzi w drugim. Zapisz nazwę profilu, zawarte w nim porty i nasłuchującego, względem którego weryfikowałeś.

Lista kontrolna kończy się, gdy nazwa istnieje lub została świadomie zastąpiona, definicja odpowiada rzeczywistemu nasłuchującemu, usługa jest zarządzana osobno, a ty przetestowałeś zarówno dozwoloną, jak i odmówioną drogę, mając pod ręką drogę odzyskiwania. Nazwa na liście nie jest żadnym z tych rzeczy.

Powiązane artykuły