Немає профілю застосунку UFW? Він описує порти, а не служби
Профіль застосунку UFW — це іменований список портів і протоколів, а не служба. Прочитайте app info, порівняйте реального слухача й збережіть шлях назад перед перезавантаженням.
UFW повідомляє, що не знаходить профілю, який відповідає OpenSSH, і пошук причини веде прямо до сервера SSH. Це хибний напрямок: повідомлення стосується іменованого визначення міжмережевого екрана й нічого не каже про те, чи встановлено sshd, чи він працює або слухає. Профіль застосунку UFW — це список портів і протоколів із міткою. Читання визначення займає одну команду й зазвичай завершує розслідування.
Крок 1: перелічіть імена, які UFW справді знає
Запитайте міжмережевий екран, які імена він має, перш ніж просити дозволити одне з них. Список походить із профілів, встановлених на цій машині, тому відсутнє ім'я є фактом про цю систему, а не про програмне забезпечення, яке ви намагалися захистити. Якщо ім'я є, помилка виникла через друкарську помилку або застарілий псевдонім в історії вашої оболонки.
ufw app list
ufw app info OpenSSH
Список короткий при стандартному встановленні, і імена не є іменами пакетів. Профіль з іменем OpenSSH може бути відсутнім, хоча пакет openssh-server встановлено, і навпаки також можливо. Використовуйте точне ім'я, яке друкує список; ім'я VPN-профілю або ярлик робочого столу зі схожим написанням не є профілем застосунку UFW. Якщо потрібного імені немає, це і є висновок, а наступний крок — подивитися, що має його надавати.
Крок 2: читайте визначення, а не мітку
Профіль — це файл у стилі INI в /etc/ufw/applications.d, з іменем, заголовком, описом і полем портів. Поле портів може перелічувати кілька портів і транспортів, тому мітка каже менше, ніж визначення. Посібник UFW документує ці поля й операцію оновлення застосунків. Читайте файл, а не припускайте, що ім'я означає один знайомий порт.
cat /etc/ufw/applications.d/openssh-server
ufw app info OpenSSH
Визначення, що містить 22/tcp, описує TCP-порт 22 і нічого більше. Воно не доводить, що демон на цій машині слухає там, і не охоплює другий порт, доданий пізніше. Якщо демон працює в іншому місці, профіль — це хибний дозвіл, навіть якщо його ім'я збігається з продуктом. Порівняйте слухача з визначенням, перш ніж дозволяти будь-який із них.
ss -ltnp 'sport = :22'
Зупиніться, якщо визначення й слухач розходяться. Дозвіл профілю, який називає порт, де ніхто не слухає, створює правило, що виглядає як прогрес і нічого не захищає.
Крок 3: відокремте профіль від служби, що працює
Дозвіл іменованого профілю не встановлює, не запускає й не налаштовує службу, а службі, що працює, не потрібен упакований профіль, щоб бути доступною. Це окремі рішення, які належать різним інструментам: менеджеру пакетів, менеджеру служб і міжмережевому екрану. Ставлення до них як до одного — це те, як люди встановлюють небажаний сервер, щоб з'явилося символічне ім'я.
Для VPN-сервера розділення триває після дозволу зовнішньому слухачеві. Дозвіл для порту зашифрованого транспорту не вмикає пересилання в ядрі, не додає правило NAT і не дає користувачам тунелю доступ до LAN. Кожне з цього — окрема політика з власним оглядом. Профіль, названий на честь продукту VPN, описує лише перелічені порти, а решту конфігурації сервера все ще писати вам.
Якщо профіль відсутній і він потрібен, перевірене явне правило порту або локальний профіль у applications.d — обидва законні. Встановлювати пакет, який вам не потрібен, — ні.
Крок 4: збережіть шлях назад перед перезавантаженням міжмережевого екрана
Перед будь-якою зміною правила підтвердьте, що у вас є другий шлях у машину: консоль, адреса поза смугою або запланований відкат. Потім прочитайте набір правил і політику за замовчуванням, бо відмова за замовчуванням без правила SSH — класичний спосіб заблокувати себе ззовні під час тестування. Змінюйте по одному правилу за раз і читайте підтвердження, яке друкує UFW. Збережене правило, активне правило й доступна служба — це три різні спостереження.
ufw status verbose
ufw allow 22/tcp
ufw app update OpenSSH
Після зміни перевірте дозволене з'єднання й один шлях, який має залишитися забороненим. Тест відмови такий самий важливий, як тест дозволу, бо правило ширше за задумане проходить перший тест і провалює другий. Запишіть ім'я профілю, порти, які він містив, і слухача, щодо якого ви перевіряли.
Контрольний список закінчується, коли ім'я існує або навмисно замінене, визначення відповідає реальному слухачеві, служба керується окремо, і ви перевірили як дозволений, так і заборонений шлях, маючи під рукою шлях відновлення. Ім'я у списку не є жодним із цього.