Сигурност

Лесно управление на защитната стена с UFW на Linux сървъри

  • 17 минути за четене
  • Екипът на Hostragons
Лесно управление на защитната стена с UFW на Linux сървъри

UFW на Linux сървъри е инструмент за защитна стена, който опростява сложните правила на iptables и осигурява бързо и безопасно управление на защитната стена за SSH, HTTP, HTTPS и специални портове. Особено полезен е на сървъри, базирани на Ubuntu и Debian, където можете да блокирате входящия трафик по подразбиране, да отворите необходимите услуги, да разрешите определени IP адреси и да ограничите неуспешните опити за свързване. Основният подход за безопасен старт е следният: осигурете SSH достъп, отхвърлете входящия трафик по подразбиране, разрешете изходящия трафик, отворете само портовете на използваните услуги и редовно проверявайте състоянието на UFW.

Когато един уеб сървър е свързан с интернет, той веднага се сблъсква с бот сканирания, опити за пароли, скенери за уязвимости и ненужни запитвания за портове. Поради това защитната стена е един от първите слоеве за сигурност на Linux сървъра. UFW е практичен инструмент, предпочитан от техническите екипи в ежедневната им работа; тъй като предлага четими команди, бързо добавяне и премахване на правила, предоставя логове и намалява риска от неправилна конфигурация в сравнение с командите на iptables. В това ръководство ще се разгледа стъпка по стъпка инсталацията на UFW, основните команди, предотвратяването на заключване на SSH, портовете на уеб сървъра, разрешенията на базата на IP, контрол на логовете, IPv6, специални случаи като Docker и практики за сигурност, съобразени с стандартите за 2026 година.

Какво е UFW и какво прави?

UFW е съкращение от Uncomplicated Firewall, което може да се преведе на български като "опростена защитна стена". Той използва инфраструктурата за филтриране на пакети на ядрото на Linux в бекграунда; но предлага по-разбираеми команди за системния администратор. Например, вместо да пишете директно правила за iptables или nftables, можете да разрешите HTTPS трафика с командата sudo ufw allow 443/tcp.

UFW е особено полезен в следните сценарии:

  • Бързо осигуряване на основна мрежова сигурност на ново инсталиран VPS или dedicated сървър.
  • Държане отворени само портовете 80 и 443 на уеб сървъра.
  • Ограничаване на SSH достъпа само до определени IP адреси.
  • Управление на SSH връзките с лимити, за да се намалят опитите за brute force.
  • Не оставяйте тестови, staging и административни панели напълно отворени за интернет.
  • Проследяване на подозрителни връзки чрез логовете.

UFW не решава всички проблеми със сигурността самостоятелно; но намалява атакуващата повърхност. В комбинация с мощни пароли, достъп с SSH ключ, редовни актуализации, конфигурация на SSL/TLS и сигурност на приложенията, той формира много ефективен основен слой. Ако хоствате уебсайт на сървъра си, не трябва да пренебрегвате използването на сертификат SSL заедно с защитната стена SSL сертификати.

Сравнение на UFW, iptables и firewalld

В екосистемата на Linux съществуват различни инструменти за управление на защитната стена. UFW, iptables и firewalld често обслужват същата нужда; но удобството при употреба, поддръжката на разпространението и подходът към управлението са различни. Следната таблица улеснява вземането на решение.

Сравнение на UFW, iptables и firewalld
ИнструментОсновно предимствоЗа кого е подходящ?На какво да се внимава
UFWПрости команди, бърза инсталация, съвместимост с Ubuntu/DebianПотребители на VPS, уеб разработчици, малки и средни екипиМоже да бъде ограничен за сложна мрежова сегментация
iptablesМного подробен контрол на правилатаОпитни системни администраториНеправилното написване на правило може да доведе до прекъсване на достъпа
firewalldЛогиката на зоните, динамично управление на правилатаCentOS, AlmaLinux, Rocky Linux средиНе е толкова прост, колкото UFW; необходимо е да се научи структурата на зоните

Ако управлявате уеб сървър, базиран на Ubuntu, UFW е достатъчен за повечето нужди. В големи корпоративни мрежи или многостепенни архитектури за сигурност, UFW трябва да бъде разглеждан в комбинация с облачни защитни групи, WAF, IDS/IPS и решения за централизирано логване.

Инсталация на UFW и първоначални проверки

UFW обикновено идва предварително инсталиран на Ubuntu. Все пак е добра практика да проверите дали е инсталиран. Командата е: sudo ufw status. Ако получите изход като command not found, трябва да го инсталирате.

Инсталация на Ubuntu и Debian

Първо актуализирайте списъка с пакети: sudo apt update. След това инсталирайте UFW: sudo apt install ufw -y. След инсталацията проверете състоянието на услугата: sudo systemctl status ufw. Дори и да не изглежда активна в изхода, това може да бъде нормално; UFW може да остане неактивна, докато правилата не бъдат активирани.

Първото правило в управлението на сървъри е да не бързате. Ако работите на дистанционен VPS, уверете се, че сте разрешили SSH порта преди да активирате UFW. В противен случай може да загубите достъпа до собствения си сървър. Ако използвате VPS чрез Hostragons, е практично да запишете достъпа до панела и опциите за конзола преди да направите първоначалната конфигурация за сигурност VPS сървър.

Преглед на текущото състояние

Можете да видите състоянието на UFW с командата sudo ufw status verbose. За по-подробен и номериран списък на правилата, командата sudo ufw status numbered е важна. Това значително улеснява изтриването на правила. Например, за да изтриете порт, който сте отворили по грешка, първо виждате номера му, след което го премахвате с команда като sudo ufw delete 3.

Сигурен старт: Подразбиращи се правила

Обикновено най-сигурният стартов модел на нов Linux сървър е следният: отхвърлете входящите връзки по подразбиране, разрешете изходящите връзки, отворете само необходимите портове. Този подход отговаря на принципа на минималните привилегии.

Основните команди, които трябва да се приложат, са:

  • sudo ufw default deny incoming
  • sudo ufw default allow outgoing
  • sudo ufw allow OpenSSH или sudo ufw allow 22/tcp
  • sudo ufw enable
  • sudo ufw status verbose

Критичният момент тук е SSH достъпът. Ако SSH работи на различен порт, например 2222, не активирайте UFW, без да изпълните командата sudo ufw allow 2222/tcp. Промяната на стандартния порт 22 за сигурност не е самостоятелна мярка; обаче може да намали опитите на автоматични ботове. По-важно е да забраните паролите за SSH достъп и да използвате достъп с ключове.

Сигурност на SSH достъпа

SSH е управленският портал на вашия сървър. Следователно, това е услугата, която трябва да бъде най-внимателно конфигурирана в UFW. Ако SSH достъпът е отворен за всеки IP адрес, автоматизирани скенери от интернет могат бързо да започнат опити за достъп до вашия сървър.

Разрешаване на SSH порта

Ако се използва стандартният порт, командата е проста: sudo ufw allow 22/tcp. Ако приложението за Ubuntu е налично, можете също да използвате sudo ufw allow OpenSSH. Ако използвате различен порт, например 2222, командата е sudo ufw allow 2222/tcp.

Ограничаване на SSH достъпа до определен IP

Един от най-сигурните методи е да отворите SSH достъпа само за фиксирани IP адреси на администратори. Например, ако офисният ви IP адрес е 203.0.113.10, можете да използвате следната команда: sudo ufw allow from 203.0.113.10 to any port 22 proto tcp. Така SSH портът няма да бъде отворен за интернет.

Ако има повече от един администратор, добавяйте отделно правило за всеки IP. Ако използвате динамичен IP, внимателно преценете този метод; ако IP адресът се промени, достъпът ви може да бъде прекъснат. В такива случаи управлението през VPN, bastion host или аварийен достъп от панела на доставчика е по-професионално решение.

Използване на лимити срещу опити за brute force

UFW предлага команда limit, за да намали честотата на опитите за свързване. Командата е: sudo ufw limit 22/tcp. Това правило помага да се ограничи броят на опитите за свързване в определен интервал. Обаче, не може да замени напълно инструменти като fail2ban. В производствена среда, за сигурност на SSH, UFW limit, fail2ban, достъп с ключове и силни политики за потребителите трябва да се използват заедно.

Отваряне на портовете на уеб сървъра: HTTP и HTTPS

За публикуване на уебсайт обикновено са необходими портове 80/tcp и 443/tcp. Порт 80 е за HTTP, а порт 443 за HTTPS трафик. Съвременната SEO, безопасността на браузъра и доверието на потребителите правят HTTPS стандарт. Сайтовете без SSL сертификат срещат предупреждения за безопасност и могат да загубят проценти на конверсия SSL сертификати.

Основни правила за Nginx или Apache

Командата за HTTP е: sudo ufw allow 80/tcp. Командата за HTTPS е: sudo ufw allow 443/tcp. За да отворите и двете, повечето администратори предпочитат да напишат командите отделно, вместо sudo ufw allow 80,443/tcp.

Можете също да използвате приложни профили на UFW. С командата sudo ufw app list можете да видите профилите за Nginx. Например, профилът Nginx Full разрешава достъп и за HTTP, и за HTTPS. Командата е: sudo ufw allow Nginx Full. От страна на Apache може да се използва подобен профил Apache Full.

Достатъчно ли е само да използвате HTTPS?

Технически, вашият сайт може да бъде публикуван само през HTTPS; обаче, процесите за подновяване на сертификати като Let’s Encrypt и пренасочването от HTTP към HTTPS често налагат 80 порта да бъде отворен. Затова е по-практично да управлявате портовете 80 и 443 заедно на уеб сървърите. Най-добрият подход е да пренасочите всички HTTP запитвания към HTTPS с 301.

Специални портове, бази данни и административни панели

Лесно е да отворите всеки порт; истинското изкуство е да знаете кои портове не трябва да бъдат отворени. Портовете 3306 за MySQL, 5432 за PostgreSQL, 6379 за Redis и 9200 за Elasticsearch могат да създадат сериозни рискове за сигурността, ако останат отворени за интернет. Тези услуги трябва, ако е възможно, да слушат само на localhost или да бъдат достъпни само през специална мрежа.

Отваряне на специален порт за определен IP

Например, ако искате само приложният сървър да има достъп до базата данни, трябва да използвате правило на базата на IP. Командата е: sudo ufw allow from 198.51.100.25 to any port 5432 proto tcp. Това правило отваря достъпа до PostgreSQL само за посочения IP.

Неправилен пример е да използвате командата sudo ufw allow 5432/tcp публично в производствена база данни. Това създава ненужна атакуваща повърхност. Винаги трябва да се мисли за ограничаване на изходящия IP за бази данни, административни панели и вътрешни услуги.

Внимание при cPanel, Plesk и административни панели

Хостинг контрол панелите могат да използват множество портове. Ако използвате Plesk, cPanel или персонализиран административен панел, не активирайте UFW, без да проверите официалния списък на портовете. В противен случай, достъпът до имейл, DNS, FTP или панел може да бъде прекъснат. За потребителите, които предпочитат управляван хостинг, тази сложност обикновено се обработва от доставчика Уеб хостинг.

Изтриване, редактиране на правила и логика на подреждане

Управлението на правила с UFW е просто; но е важно да се води регистър на промените в производствена среда. Първо, вижте съществуващите правила в номериран вид: sudo ufw status numbered. Намерете номера на правилото, което искате да изтриете, и го премахнете с команда като sudo ufw delete 5.

Възможно е също така да изтриете правило с директно изразяване. Например, командата sudo ufw delete allow 8080/tcp премахва правилото за разрешение за порт 8080. Въпреки това, при сложни правила на базата на IP, изтриването по номера е по-сигурно.

Редът на правилата става важен, особено когато се използват заедно правила allow и deny. Ако искате да добавите специално правило за отхвърляне преди общо разрешаващо правило, можете да обмислите командата insert. Например, за да откажете достъпа на определен IP на най-горно ниво, можете да използвате sudo ufw insert 1 deny from 203.0.113.55. Този подход е полезен за бързо блокиране на злонамерени или неправомерни IP адреси.

Проследяване на трафика с UFW логове

Защитната стена е ценна не само за отваряне и затваряне на портове, но и за разбиране на мрежовото поведение. За да активирате логовете на UFW, използвайте командата sudo ufw logging on. Нивото на логовете може да бъде настроено на low, medium, high или full, ако е необходимо. За повечето сървъри, за начало, low е достатъчно.

За да прегледате логовете, можете да проверите файла /var/log/ufw.log. Примерна команда: sudo tail -f /var/log/ufw.log. Тук можете да видите отхвърлени връзки, източници на IP адреси, целеви портове и информация за протоколите. Например, ако получавате опити за достъп до порт 22 от стотици различни IP адреси за кратко време, е необходимо да стегнете мерките за сигурност на SSH.

Държането на логовете на високо ниво постоянно може да увеличи използването на диска. Затова в сървъри с интензивен трафик трябва да се помисли за ротация на логовете, централизирано логване и механизми за аларми. В корпоративни проекти е важно не само да се пазят записи за сигурност, но и да се наблюдават по смислен начин.

IPv6 и настройки на UFW

От 2026 г. поддръжката на IPv6 е стандарт в много дата центрове. Въпреки това, някои администратори могат да оставят уязвимост, като мислят само за правилата на IPv4. Ако вашият сървър получава IPv6 адрес, уверете се, че UFW управлява и трафика на IPv6.

За проверка в файла /etc/default/ufw трябва да присъства редът IPV6=yes. След промяна UFW може да бъде рестартирана: sudo ufw disable и след това sudo ufw enable. Ако в изхода на UFW status виждате правила с обозначение v6, това означава, че IPv6 страната също се управлява.

Ако не използвате IPv6, вместо да го деактивирате напълно, първо проверете изискванията на доставчика и приложението. Неправилната конфигурация на IPv6 може да доведе до достъпност на услуга, която сте затворили от страна на IPv4. Това е често срещана, но пренебрегвана уязвимост.

Защо UFW може да се държи различно, когато се използва Docker?

Docker може да променя правилата на iptables, когато публикува портовете на контейнерите. Това може да бъде изненадващо за администраторите, които използват UFW; тъй като порт, който изглежда затворен в UFW, може да стане достъпен отвън поради настройката за Docker publish. Например, командата docker run -p 8080:80 публикува порта 80 на контейнера като 8080 на хоста.

На сървъри, използващи Docker, трябва да се направят следните проверки:

  • Прегледайте изхода от docker ps, за да видите кои портове са отворени навън.
  • Премахнете ненужните определения -p или ports.
  • Обмислете публикуването на услугите само на 127.0.0.1.
  • Проверете комбинирано правилата на облачната защитна група и UFW.
  • В производствена среда провеждайте контролирано публикуване през reverse proxy.

Сигурността в контейнерните архитектури не се състои само от командите на UFW. Docker мрежите, сигурността на образите, управлението на секрети и стратегията за актуализация трябва да бъдат планирани заедно. Изборът на правилния сървър за приложения с висок трафик е също толкова критичен за сигурността и производителността Посветен сървър.

Приложим списък за проверки на сигурността за UFW

Следният списък за проверки може да се използва като практичен стандарт за старт на нов Linux сървър. Особено преди публикуването на уеб проект, API, електронен магазин или клиентски панел, прегледът на тези точки намалява риска от прекъсвания и проблеми със сигурността.

  • Актуализирайте сървъра: sudo apt update && sudo apt upgrade -y.
  • Тествайте SSH достъпа и, ако е възможно, оставете отворена втора терминална сесия.
  • Отхвърлете входящия трафик по подразбиране: sudo ufw default deny incoming.
  • Разрешете изходящия трафик по подразбиране: sudo ufw default allow outgoing.
  • Разрешете SSH порта или приложете ограничение на базата на IP.
  • Отворете само портовете 80 и 443 за уеб сървъра.
  • Не отваряйте портовете на базата данни за интернет.
  • Активирайте UFW: sudo ufw enable.
  • Проверете правилата: sudo ufw status verbose и sudo ufw status numbered.
  • Активирайте логването и проверете подозрителния трафик в първите 24 часа.
  • Прегледайте правилата на IPv6.
  • Ако използвате Docker или контролен панел, тествайте ефектите от допълнителните портове.

Реалистичен пример: инсталация на UFW за WordPress сървър

Да предположим, че един единствен WordPress сайт работи на Ubuntu с Nginx, PHP-FPM и MySQL. MySQL слуша само на localhost, сайтът е публикуван с HTTPS, а SSH ще бъде достъпен само от IP адрес на администратора. В този сценарий конфигурацията на UFW може да изглежда така:

  • sudo ufw default deny incoming
  • sudo ufw default allow outgoing
  • sudo ufw allow from 203.0.113.10 to any port 22 proto tcp
  • sudo ufw allow 80/tcp
  • sudo ufw allow 443/tcp
  • sudo ufw logging on
  • sudo ufw enable
  • sudo ufw status verbose

В тази конфигурация SSH не е отворен за всеки достъп, отворени са необходимите два порта за уеб трафик и базата данни е затворена за интернет. На страната на WordPress, сигурността ще бъде подсилена с плъгини за сигурност, силни пароли за администратора, актуални теми и плъгини, редовно архивиране и SSL. Управлението на домейна и правилната конфигурация на DNS записите също са важни за достъпността проверка на домейн.

Чести грешки и предложения за решения

SSH връзката прекъсва, когато активирате UFW

Това обикновено се случва, когато UFW е активирана без разрешение за SSH порта. Ако имате достъп до конзолата от панела на доставчика, свържете се и добавете sudo ufw allow 22/tcp или разрешение за използвания специален порт. Ако нямате достъп до конзолата, може да се наложи да се свържете с екипа за поддръжка. Затова винаги добавяйте правило за SSH преди активиране на UFW.

Уебсайтът не се отваря

Дори и Nginx или Apache да работят, ако портовете 80 и 443 са затворени, сайтът не може да бъде достъпен. Проверете портовете с sudo ufw status verbose. Също така, уверете се, че портът, на който слуша уеб сървърът, е правилен с командата ss -tulpn. Уверете се, че DNS записите са правилно насочени Управление на DNS.

Имейл услугите не работят

Имейл сървърите използват множество портове за SMTP, IMAP, POP3 и техните сигурни версии. Портовете 25, 465, 587, 993, 995 и други могат да бъдат необходими в зависимост от сценария. Ако използвате услуга за хостинг на имейл, не е необходимо да отваряте тези портове на собствения си сървър корпоративен имейл хостинг.

Добавих правило, но то не проработи

Неправилният протокол, неправилният порт, ефектът от Docker, облачната защитна група или приложението, което слуша на различен порт, могат да бъдат причината за това. Правилото на UFW управлява филтрирането на мрежовия слой; ако приложението не работи, дори и портът да е отворен, то няма да предостави услуга. Затова трябва да се проверят защитната стена, състоянието на услугата и правилата на мрежата на доставчика.

Най-добрите практики за UFW за 2026 година

Актуалната сигурност на сървъра е много по-комплексна от просто затваряне на няколко порта. Добрата конфигурация на UFW през 2026 г. трябва да бъде подкрепена от следните принципи:

  • Минимални привилегии: Отворете само наистина необходимите портове.
  • Сигурност на удостоверяването: Използвайте достъп с ключове за SSH.
  • Ограничаване на IP адресите: Поставете административните портове зад фиксиран IP или VPN.
  • Наблюдаемост: Редовно наблюдавайте логовете на UFW и системните логове.
  • Резервен план: Имайте достъп до конзола или процедури за възстановяване за случай на неправилно правило на защитната стена.
  • Многостепенна сигурност: Използвайте UFW заедно с WAF, SSL, актуализации, архивиране и сигурност на приложенията.
  • Документация: Записвайте причината за добавянето на всяко правило в екипа.

Добре конфигурирана защитна стена е допълнителна част от ефективна и надеждна хостинг инфраструктура. С нарастването на трафика на проекта, не само правилата за портовете, но и ресурсното използване, архивирането, CDN, SSL и решенията за мониторинг също трябва да бъдат планирани Хостинг пакети.

Често задавани въпроси

Активирането на UFW прави ли сървъра ми напълно защитен?

Не. UFW намалява атакуващата повърхност и осигурява важен слой сигурност, като затваря ненужни портове; но не е достатъчно само по себе си. Трябва да се използва заедно с актуализации, SSH ключове, силни пароли, SSL, архивиране и сигурност на приложенията.

Достатъчни ли са само портовете 80 и 443 за UFW?

Обикновено за един уеб сайт, портовете 80 и 443 са достатъчни. Въпреки това, трябва също така безопасно да отворите порта 22 или специалния SSH порт за управление. Портовете за бази данни и административните панели също трябва да бъдат ограничени на базата на IP, ако е възможно.

Промяната на SSH порта увеличава ли сигурността?

Промяната на SSH порта може да намали опитите за автоматизирани ботове; но не трябва да се разглежда като истинска мярка за сигурност. По-силният подход е да се използват SSH ключове, да се забрани паролният достъп, да се приложи ограничение на IP и да се използват UFW limit или fail2ban.

Контролира ли UFW и контейнерите на Docker?

Не винаги се държи така, както очаквате. Docker може директно да променя правилата на iptables, когато публикува портове. Затова на сървъри, използващи Docker, трябва да се проверяват изходите от docker ps, публикуваните портове и правилата на UFW.

Трябва ли да проверя настройките на IPv6, докато използвам UFW?

Да. Ако вашият сървър получава IPv6 адрес, уверете се, че UFW управлява и трафика на IPv6. Трябва да се провери настройката IPV6=yes в файла /etc/default/ufw и да се потвърдят правилата с v6 в изхода на UFW status.

В обобщение, управлението на защитната стена с UFW на Linux сървъри може да бъде бързо, четимо и ефективно. С правилните начални правила, сигурност на SSH, контролирано отваряне на уеб портове и проследяване на логовете можете значително да намалите атакуващата повърхност на сървъра си. Ако стартирате нов проект, е разумно да планирате безопасна хостинг инфраструктура, SSL и редовни поддържащи стъпки, които ще доведат до по-добри резултати в дългосрочен план. Можете да разгледате решенията на Hostragons, за да изберете подходящата инфраструктура и да развиете конфигурацията за сигурност според целите си за растеж.

Споделете тази статия:

Екипът на Hostragons

Актуални ръководства от нашия експертен екип за хостинг, сървъри и домейн имена. Нека заедно намерим правилното решение за вашия проект.

Свържете се с нас