Липсва профил на приложение в 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
След промяната тествайте разрешената връзка и един път, който трябва да остане отказан. Тестът за отказ е също толкова важен, колкото този за разрешение, защото правило, по-широко от предвиденото, минава първия тест и не минава втория. Запишете името на профила, портовете, които е съдържал, и слушателя, срещу който сте проверили.
Контролният списък приключва, когато името съществува или е умишлено заменено, дефиницията съвпада с реалния слушател, услугата се управлява отделно и сте тествали както разрешен, така и отказан път, с път за възстановяване под ръка. Име в списъка не е нито едно от тези неща.