Налаштування фаєрволу в Ubuntu за допомогою утиліти UFW

Вступ

UFW (Uncomplicated Firewall) – зручний інтерфейс управління політиками безпеки  міжмережевого екрана.  Наші сервери постійно піддаються різним атакам або скануються під час пошуку уразливостей. Як тільки ці вразливості перебувають, ми ризикуємо стати частиною ботнету, розкрити конфіденційні дані чи втратити гроші через збої у роботі вебдодатків. Одним із перших заходів щодо зниження ризиків безпеки є грамотне налаштування правил міжмережевого екрана. У нашому посібнику ми розглянемо основні команди та правила роботи з утилітою UFW.

Попередні вимоги

  1. Для початку роботи з UFW вам знадобиться суперкористувач (можливість виконання команд під sudo). 
  2. Утиліта UFW встановлена ​​в системі. Якщо з якоїсь причини вона була відсутня, ви можете встановити її за допомогою команди:
sudo apt-get install ufw

Перевірка правил та поточного стану UFW

У будь-яку годину ви можете перевірити стан UFW за допомогою команди:

sudo ufw status verbose

За замовчуванням UFW вимкнено, так що ви повинні побачити щось на зразок цього:

Status: inactive

Якщо UFW увімкнено, то консолі будуть перелічуватись задані правила. Наприклад, якщо firewall налаштований таким чином – SSH (порт 22) з’єднання з будь-якої точки світу, консоль може виглядати так:

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip

 

To                         Action      From

--                         ------      ----

22                         ALLOW IN    Anywhere

22 (v6)                    ALLOW IN    Anywhere (v6)

Так ви завжди можете дізнатися як налаштований фаєрвол. 

Увага! Перед увімкненням UFW проведіть початкове налаштування. Зокрема, має бути доступний SSH(22 порт). В іншому випадку ви ризикуєте втратити доступ до сервера.

Початкове налаштування

За замовчуванням UFW налаштування забороняють усі вхідні з’єднання та дозволяють усі вихідні. Це означає, що якщо хтось спробує досягти ваш сервер, він не зможе під’єднатися, тоді коли будь-яка програма на сервері має доступ до зовнішніх з’єднань.

Відповідні правила фаєрволу прописуються так:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Додавання правила для SSH-з’єднань

 Щоб дозволити вхідні SSH-з’єднання, виконайте команду:

sudo ufw allow ssh

SSH демон прослуховує 22 порти. UFW знає про імена найпоширеніших служб (ssh, sftp, http, https), тому ви можете використовувати їх замість порту.

Якщо ваш SSH демон використовує інший порт, вам необхідно вказати його у явному вигляді, наприклад:

sudo ufw allow 2222

Тепер, коли ваш міжмережевий екран налаштований, можете увімкнути його.

Запуск UFW

Щоб увімкнути UFW, використовуйте таку команду:

sudo ufw enable

Ви отримаєте схоже попередження:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? 

Це означає, що запуск цього сервісу може розірвати потокове з’єднання ssh.

Але оскільки ми його вже додали ssh у правила, цього не станеться. Тому просто натисніть (y).

Додавання правил для інших підключень

Щоб додатки працювали правильно, вам необхідно додати інші правила. Нижче буде показано налаштування для найпоширеніших служб.

HTTP (80 порт)

Для роботи не зашифрованих вебсерверів використовуйте таку команду:

sudo ufw allow http

або:

sudo ufw allow 80

HTTPS (443 порт)

Те саме, що й у попередньому прикладі, але для зашифрованих з’єднань:

sudo ufw allow https

або:

sudo ufw allow 443

FTP (21 порт)

Цей порт використовується для незашифрованої передачі файлів:

sudo ufw allow ftp

або:

sudo ufw allow 21/tcp

Додавання діапазонів портів

sudo ufw allow 3000:3100

Також можна вказувати конкретний протокол:ф

sudo ufw allow 3000:3100/tcp
sudo ufw allow 3000:3100/udp

Додавання IP-адрес

Ви можете вказати IP-адресу, якій дозволено доступ.

sudo ufw allow from 123.45.67.89

У наведеному прикладі зазначеною адресою дозволяється доступ до всіх портів сервера.

Якщо ви хочете вказати доступ до конкретного порту, скористайтесь командою виду:

sudo ufw allow from 123.45.67.89 to any port 22

Аналогічно ви можете працювати з діапазонами IP-адрес:

sudo ufw allow from 123.45.67.89/24

sudo ufw allow from 123.45.67.89/24 to any port 22

Обмеження підключень

Щоб заборонити з’єднання HTTP, можна використовувати наступну команду:

sudo ufw deny http

Якщо ви бажаєте заборонити всі з’єднання з 123.45.67.89, скористайтесь наступною командою:

sudo ufw deny from 123.45.67.89

Видалення правил

Існує два способи видалення правил. Перший – за номером правила. Виконайте команду:

sudo ufw status numbered
Status: active




     To                         Action      From

     --                         ------      ----

[ 1] 22                         ALLOW IN    Anywhere

[ 2] 80                         ALLOW IN    Anywhere

[ 3] 22 (v6)                    ALLOW IN    Anywhere (v6)

[ 4] 80 (v6)                    ALLOW IN    Anywhere (v6)

Після цього виконайте команду ufw delete та вкажіть номер правила, яке слід видалити:

sudo ufw delete 2

Інший спосіб полягає в тому, що після команди ufw delete використовують фактичне правило, наприклад:

sudo ufw delete allow http

або:

sudo ufw delete allow 80

Вимкнення UFW

Вимкнути UFW можна за допомогою команди:

sudo ufw disable

Внаслідок її виконання всі створені раніше правила втратити чинність.

Скидання правил

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

sudo ufw reset

Внаслідок її виконання всі правила будуть відключені та видалені.

Логи

Ufw має опцію збереження логів – журнал подій. Для запуску використовуйте команду:

sudo ufw logging on

Ufw підтримує кілька рівнів логування:

  • off – вимкнено.
  • low – реєструє всі заблоковані пакети, що не відповідають заданій політиці (з обмеженням швидкості), а також пакети, що відповідають зареєстрованим правилам.
  • medium – всі ті, що при значенні low. Плюс всі дозволені пакети, що не відповідають заданій політиці, всі недопустимі пакети, та все нові з’єднання. Усі записи ведуться з обмеженням швидкості.
  • high – працює також як і medium. Плюс усі пакети з обмеженням швидкості.
  • full – так само як і high, але без обмеження швидкості. 

Щоб встановити рівень, вкажіть його як параметр:

sudo ufw logging high

За замовчування використовується рівень low.

Для перегляду файлів, що стосуються логів ufw, використовуйте команду:

ls /var/log/ufw*

Висновок

Тепер ваш фаєрвол має мінімально необхідні налаштування для подальшої роботи. Далі переконайтеся, що всі підключення, що використовують ваш вебдодаток, також дозволені й заблокуйте ті, в яких нема потреби. Це зменшить ризики проникнення на ваш сервер та здійснення хакерами шкідливих дій.

Якщо помітили помилки чи неточності, будь ласка, залишіть коментар чи напишіть листа на поштову адресу [email protected]

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *