bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Як налаштувати firewall на VPS?

calendar_month March 17, 2025 schedule 11 хв. читання visibility 595 переглядів
person
Valebyte Team
Як налаштувати firewall на VPS?
summarize

TL;DR

  • Используйте UFW или Firewalld для упрощенного управления правилами фильтрации трафика на Linux.
  • Закройте все неиспользуемые порты, чтобы защитить VPS от автоматизированного сканирования и ботов.
  • Ограничьте доступ к SSH только для доверенных IP-адресов для защиты от подбора паролей.
  • Настройте блокировку входящего трафика по умолчанию, разрешая только необходимые для работы службы.
  • Контролируйте исходящие соединения, чтобы предотвратить использование VPS в составе ботнетов.

Як налаштувати firewall на VPS?

Налаштування фаєрвола (firewall) на вашому VPS хостингу – це не просто рекомендація, а абсолютно критично важливий крок для забезпечення безпеки сервера та даних, які на ньому зберігаються. У цій статті ми детально розглянемо, як налаштувати основні інструменти фаєрвола в Linux: UFW, Firewalld і безпосередньо Iptables, щоб ваш VPS був надійно захищений від несанкціонованого доступу, шкідливих атак та інших загроз з інтернету.

Чому firewall критично важливий для вашого VPS?

A digital shield protecting a server from cyber threats, symbolizing the critical role of a firewall.

У сучасному інтернеті, де кількість кібератак зростає експоненціально, залишати сервер без фаєрвола – це як залишати двері відчиненими в жвавому районі. VPS-сервери, за своєю природою, постійно доступні з інтернету, що робить їх мішенню для автоматизованих сканерів портів, ботів, які намагаються підібрати паролі, і цілеспрямованих атак. Фаєрвол діє як воротар, контролюючи весь вхідний і вихідний мережевий трафік на основі заданих правил.

Ось кілька ключових причин, чому фаєрвол незамінний:

  • Захист від сканування портів: Більшість атак починаються зі сканування відкритих портів. Фаєрвол дозволяє закрити всі порти, крім тих, які дійсно необхідні для роботи ваших сервісів.
  • Запобігання несанкціонованому доступу: Блокуючи доступ до служб (наприклад, SSH, якщо ви не використовуєте його), фаєрвол значно знижує поверхню атаки.
  • Обмеження атак типу DoS/DDoS: Хоча фаєрвол не є панацеєю від масштабних DDoS-атак, він може допомогти пом'якшити менш інтенсивні атаки, блокуючи підозрілі IP-адреси або обмежуючи кількість з'єднань.
  • Контроль вихідного трафіку: Фаєрвол також може контролювати, які з'єднання ваш сервер може встановлювати із зовнішнім світом, запобігаючи, наприклад, використанню вашого VPS як частини ботнету для розсилки спаму.
  • Ізоляція служб: Ви можете налаштувати правила так, щоб різні служби могли спілкуватися тільки з певними IP-адресами або іншими службами на сервері.

Пам'ятайте, що безпека – це багаторівневий процес, і фаєрвол – лише один з його стовпів. Але без нього інші заходи можуть виявитися набагато менш ефективними.

Вибір інструменту: UFW, Firewalld або Iptables?

У світі Linux існує кілька популярних інструментів для управління фаєрволом. Усі вони в кінцевому підсумку взаємодіють з підсистемою Netfilter ядра Linux, але пропонують різні рівні абстракції та зручності використання. Вибір інструменту часто залежить від дистрибутива Linux, ваших уподобань і рівня комфорту з командним рядком.

Інструмент ОС (типово) Складність Основні особливості
UFW (Uncomplicated Firewall) Ubuntu, Debian Низька Простий синтаксис, орієнтований на швидке застосування базових правил. Відмінно підходить для новачків і більшості завдань.
Firewalld CentOS, RHEL, Fedora Середня Використовує концепцію "зон" і "сервісів". Підтримує динамічне оновлення правил без перезавантаження. Добре для серверів зі змінними вимогами.
Iptables Усі Linux Висока Низькорівневий, потужний і гнучкий. Дає повний контроль над Netfilter. Вимагає глибокого розуміння принципів роботи мережі.

Для більшості користувачів VPS, особливо на Ubuntu/Debian, UFW буде найпростішим і достатнім рішенням. Якщо ви використовуєте CentOS/RHEL, то Firewalld – це ваш вибір за замовчуванням. Iptables рекомендується для тих, хто потребує максимальної гнучкості або працює зі складними мережевими конфігураціями.

Потрібен надійний VPS для вашого файрвола?

Захистіть свій сервер за допомогою потужного файрвола. Оберіть ідеальний VPS-хостинг для максимальної безпеки. — from €4.49/mo.

Обрати VPS →
rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Налаштування UFW (Uncomplicated Firewall)

UFW – це інтерфейс для Iptables, розроблений для спрощення процесу налаштування фаєрвола. Він попередньо встановлений або легко встановлюється на Debian-подібних системах і є відмінною відправною точкою.

Встановлення та ввімкнення UFW

Якщо UFW ще не встановлено, зробіть це:

sudo apt update
sudo apt install ufw

Перед тим як ввімкнути UFW, переконайтеся, що ви дозволили SSH, інакше ви ризикуєте заблокувати себе. За замовчуванням UFW блокує весь вхідний трафік.

sudo ufw allow ssh  # Дозволити вхідні з'єднання по порту SSH (за замовчуванням 22)
sudo ufw enable     # Увімкнути UFW. Підтвердіть "y"
sudo ufw status verbose # Перевірити статус і правила UFW

Після ввімкнення UFW, його статус має бути "active".

Налаштування політик за замовчуванням

Рекомендується встановити політику "заборонити всі вхідні, дозволити всі вихідні". Це означає, що сервер не прийматиме жодних з'єднань ззовні, крім явно дозволених, але зможе вільно встановлювати з'єднання назовні (для оновлень, запитів до API тощо).

sudo ufw default deny incoming
sudo ufw default allow outgoing

Дозвіл доступу до служб та портів

Тепер, коли базові політики встановлено, дозволимо доступ до необхідних служб:

  • SSH (порт 22): Ми вже дозволили його. Якщо ви використовуєте нестандартний порт SSH, вкажіть його:
    sudo ufw allow 2222/tcp # Якщо ваш SSH на порту 2222
  • HTTP (порт 80) та HTTPS (порт 443) для веб-сервера:
    sudo ufw allow http
    sudo ufw allow https
    # Або за номерами портів
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
  • DNS (порт 53) для сервера імен (якщо ваш VPS є DNS-сервером):
    sudo ufw allow 53
  • FTP (порти 20, 21 та пасивні порти, якщо використовуються):
    sudo ufw allow ftp # Дозволить порти 20, 21. Для пасивного режиму може знадобитися більше.
  • Довільний порт:
    sudo ufw allow 12345/tcp # Дозволити TCP-порт 12345
    sudo ufw allow 54321/udp # Дозволити UDP-порт 54321
  • Обмеження доступу за IP-адресою:
    sudo ufw allow from 192.168.1.1 to any port 22 # Дозволити SSH тільки з IP 192.168.1.1
    sudo ufw deny from 1.2.3.4 # Заблокувати весь трафік з IP 1.2.3.4

Управління правилами UFW

Перегляд правил з нумерацією корисний для їх видалення:

sudo ufw status numbered

Видалення правила за номером:

sudo ufw delete 3 # Видалити правило під номером 3

Вимкнення UFW (обережно, це зробить ваш сервер вразливим!):

sudo ufw disable

Скидання всіх правил UFW до значень за замовчуванням (видаляє всі ваші налаштування):

sudo ufw reset

Налаштування Firewalld

Firewalld – це динамічний демон управління фаєрволом з підтримкою зон. Він є стандартним фаєрволом для дистрибутивів Red Hat, таких як CentOS, RHEL і Fedora.

Встановлення та запуск Firewalld

Встановіть Firewalld, якщо він ще не встановлений:

sudo yum install firewalld # Для CentOS 7
sudo dnf install firewalld # Для CentOS 8 / Fedora

Запустіть та увімкніть Firewalld, щоб він стартував під час завантаження:

sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --state # Перевірити статус

Робота з зонами

Firewalld використовує концепцію "зон" (zones), які визначають рівень довіри до мережевих інтерфейсів або джерел. Найбільш часто використовується зона public.

sudo firewall-cmd --get-active-zones # Показати активні зони
sudo firewall-cmd --zone=public --list-all # Показати всі правила для зони public

Додавання та видалення служб і портів

Firewalld дозволяє дозволяти доступ до служб за їхніми іменами (наприклад, ssh, http, https) або за номерами портів. Використовуйте флаг --permanent, щоб зміни зберігалися після перезавантаження, та --reload для їх застосування.

  • SSH:
    sudo firewall-cmd --zone=public --add-service=ssh --permanent
    sudo firewall-cmd --reload
  • HTTP та HTTPS:
    sudo firewall-cmd --zone=public --add-service=http --permanent
    sudo firewall-cmd --zone=public --add-service=https --permanent
    sudo firewall-cmd --reload
  • Довільний порт:
    sudo firewall-cmd --zone=public --add-port=12345/tcp --permanent
    sudo firewall-cmd --reload
  • Видалення правила:
    sudo firewall-cmd --zone=public --remove-service=ftp --permanent
    sudo firewall-cmd --zone=public --remove-port=12345/tcp --permanent
    sudo firewall-cmd --reload
  • Обмеження за IP-адресою:
    sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port port="22" protocol="tcp" accept' --permanent
    sudo firewall-cmd --reload

Прямі правила (для просунутих сценаріїв)

Якщо вам потрібен більш низькорівневий контроль, Firewalld дозволяє використовувати "прямі правила" (direct rules), які напряму взаємодіють з Iptables. Це корисно для складних конфігурацій, які не можуть бути виражені через зони та сервіси.

sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 25 -j DROP --permanent
sudo firewall-cmd --reload

Це правило блокує весь вхідний трафік на TCP-порт 25 (SMTP), використовуючи синтаксис Iptables.

Налаштування Iptables (Низькорівнева міць)

Iptables – це утиліта командного рядка, яка дозволяє адміністратору налаштовувати таблиці правил, надані брандмауером ядра Linux (Netfilter). Це найпотужніший, але й найскладніший спосіб налаштування фаєрвола.

Основні концепції Iptables

  • Таблиці (Tables): Набори ланцюжків, що виконують певні функції (наприклад, filter для фільтрації пакетів, nat для перетворення мережевих адрес).
  • Ланцюжки (Chains): Послідовності правил, через які проходять пакети. Основні ланцюжки:
    • INPUT: Для пакетів, призначених для самого сервера.
    • OUTPUT: Для пакетів, що генеруються сервером.
    • FORWARD: Для пакетів, що проходять через сервер (якщо він діє як маршрутизатор).
  • Правила (Rules): Кожне правило складається з умов (збігів, MATCH) та дії (цілі, TARGET). Якщо пакет відповідає умовам, до нього застосовується дія.
  • Дії (Targets): Що робити з пакетом: ACCEPT (пропустити), DROP (відкинути без повідомлення), REJECT (відкинути з повідомленням), LOG (записати в лог), RETURN (повернутися в попередній ланцюжок).

Базові правила Iptables

Почнемо з встановлення політик за замовчуванням на DROP для вхідного та перенаправленого трафіку. Це забезпечить максимальну безпеку, блокуючи все, що не дозволено явно.

sudo iptables -P INPUT DROP    # Заборонити весь вхідний трафік за замовчуванням
sudo iptables -P FORWARD DROP  # Заборонити перенаправлений трафік
sudo iptables -P OUTPUT ACCEPT # Дозволити весь вихідний трафік за замовчуванням (можна посилити)

Тепер дозволимо необхідний трафік:

# Дозволити вже встановлені та пов'язані з'єднання (дуже важливо!)
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Дозволити трафік через інтерфейс loopback (localhost)
sudo iptables -A INPUT -i lo -j ACCEPT

# Дозволити SSH (порт 22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Дозволити HTTP (порт 80)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Дозволити HTTPS (порт 443)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Перегляд поточних правил
sudo iptables -L -v -n

Прапорці -v (verbose) показує лічильники пакетів/байтів, -n (numeric) показує IP-адреси та порти в числовому форматі, а не іменах.

```html

Збереження та відновлення правил Iptables

Правила Iptables за замовчуванням не зберігаються після перезавантаження. Їх потрібно явно зберегти та налаштувати автоматичне завантаження при старті системи.

Для Debian/Ubuntu:

Встановіть пакет iptables-persistent:

sudo apt-get install iptables-persistent

В процесі встановлення вас запитають, чи хочете ви зберегти поточні правила IPv4 та IPv6. Погодьтесь. Якщо правила змінились, збережіть їх вручну:

sudo netfilter-persistent save

Правила будуть збережені в /etc/iptables/rules.v4 та /etc/iptables/rules.v6.

Для CentOS/RHEL (старі версії або якщо Firewalld відключено):

Встановіть iptables-services:

sudo yum install iptables-services

Збережіть поточні правила:

sudo service iptables save

Увімкніть сервіс Iptables для автоматичного запуску:

sudo systemctl enable iptables

Правила будуть збережені в /etc/sysconfig/iptables.

Важливе зауваження: При роботі з Iptables, особливо при встановленні політики DROP, завжди будьте вкрай обережні. Одна невірна команда може повністю заблокувати ваш доступ до сервера.

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Типові сценарії та кращі практики

Захист SSH

  • Змініть стандартний порт SSH (22) на нестандартний. Це не панацея, але значно знизить шум від автоматичних сканерів. Не забудьте дозволити новий порт у фаєрволі.
  • Обмежте доступ по IP: Якщо ви завжди підключаєтесь з однієї або декількох фіксованих IP-адрес, дозвольте SSH тільки для них.
  • Використовуйте Fail2ban: Це потужний інструмент, який автоматично блокує IP-адреси, що намагаються підібрати паролі або здійснити інші атаки, взаємодіючи з вашим фаєрволом.

Дозвіл доступу до веб-серверу

Для більшості веб-серверів достатньо відкрити порти 80 (HTTP) та 443 (HTTPS). Якщо у вас є специфічні порти для адміністративних панелей або інших веб-сервісів, відкривайте їх тільки при необхідності і, по можливості, обмежуйте доступ по IP.

Блокування шкідливих IP-адрес

Якщо ви помітили підозрілу активність з певних IP-адрес (наприклад, в логах веб-сервера або SSH), ви можете заблокувати їх на рівні фаєрволу:

# UFW
sudo ufw deny from 1.2.3.4

# Firewalld
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="1.2.3.4" drop' --permanent
sudo firewall-cmd --reload

# Iptables
sudo iptables -A INPUT -s 1.2.3.4 -j DROP

Моніторинг та логування

Налаштуйте фаєрвол на логування відкинутих пакетів (особливо для INPUT ланцюжка). Це допоможе вам виявляти спроби атак та налагоджувати правила. Будьте уважні: надмірне логування може швидко заповнити дисковий простір.

# Приклад для Iptables (додається перед правилом DROP за замовчуванням)
sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_denied: " --log-level 7

Резервне копіювання правил

Завжди робіть резервні копії ваших правил фаєрволу. Це дозволить швидко відновити працездатність у випадку збою або помилкового налаштування.

Обережність з IPv6

Не забувайте, що більшість сучасних VPS підтримують IPv6. Переконайтеся, що ваші правила фаєрволу застосовуються як до IPv4, так і до IPv6, або що IPv6 повністю відключений, якщо він вам не потрібен. UFW та Firewalld зазвичай керують обома протоколами, але з Iptables вам знадобиться ip6tables.

Що робити, якщо ви заблокували себе?

Це поширена проблема, особливо при першому налаштуванні фаєрволу. Якщо ви втратили доступ по SSH після включення фаєрволу, є декілька варіантів:

  1. Консоль VPS: У більшості провайдерів VPS, включаючи Valebyte, є функція веб-консолі або VNC-доступу з панелі управління. Використовуйте її для прямого доступу до командної строки сервера, як якщо б ви сиділи за ним. Звідти ви зможете виправити або відключити правила фаєрволу.
  2. Режим відновлення (Recovery Mode): Деякі провайдери пропонують завантаження в режим відновлення, який дозволяє отримати доступ до файлової системи вашого VPS та відредагувати файли конфігурації фаєрволу (наприклад, /etc/iptables/rules.v4 або /etc/ufw/user.rules).
  3. Перевстановлення ОС: В крайньому випадку, якщо нічого не допомагає, ви можете перевстановити операційну систему на VPS. Це зітре всі дані, але поверне вам доступ. Це має бути самий останній варіант.

Порада: Перед тим як включити фаєрвол з політикою "deny incoming", завжди відкривайте SSH. І краще за все спочатку протестувати правила на тестовому сервері або бути готовим використовувати консоль VPS.

Висновки

Налаштування фаєрволу – це фундаментальний аспект забезпечення безпеки будь-якого VPS. Незалежно від того, чи виберете ви простоту UFW, гнучкість Firewalld або міць Iptables, головне – це наявність продуманого набору правил, який захищає ваш сервер, не перешкоджаючи роботі необхідних служб.

Пам'ятайте, що безпека – це не одноразове налаштування, а постійний процес. Регулярно переглядайте свої правила фаєрволу, оновлюйте їх по мірі зміни вимог до сервера та слідкуйте за новими загрозами. З правильно налаштованим фаєрволом ваш VPS від Valebyte буде працювати стабільно та безпечно, дозволяючи вам зосередитися на розвитку ваших проектів, а не на боротьбі з кібератаками.

Потрібна максимальна продуктивність та безпека?

Для найвимогливіших проектів, де важлива кожна деталь безпеки та продуктивності. Відкрийте для себе міць виділених серверів.

Обрати сервер →
```
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.