NOTE: Ця стаття призначена для досвідчених користувачів.
Ця інструкція описує конфігурацію правил міжмережевого екрану з інтерфейсу командного рядка (CLI) маршрутизатора. У статті детально наведена теорія: 'Як працює міжмережевий екран?'. Інформацію про обмеження налаштування правил міжмережевого екрану з веб-інтерфейсу див. статтю Міжмережевий екран.
CLI надає додаткові можливості для налаштування міжмережевого екрану Keenetic порівняно з веб-інтерфейсом. Детальний опис команд CLI для кожної моделі Keenetic можна знайти в Довідковому посібнику з команд, доступному в Центрі завантаження.
Міжмережевий екран пристрою Keenetic виконує правила фільтрації, записані в списку контролю доступу (ACL) на кожному інтерфейсі, до якого прив’язаний цей список. До одного інтерфейсу можна прив’язати кілька списків.
Наступні команди доступні для налаштування брандмауера:
access-list {ACL_name} — надає доступ до керування правилами у вказаному списку доступу. Якщо списку не існує, він буде створений.
no access-list {ACL_name} — видаляє вказаний список доступу, якщо він існує.
До прикладу, для переходу до редагування списку доступа MyList1, використовується наступна команда:
(config)> access-list MyList1 (config-acl)>
Після того, як список доступу створено, ви можете почати створювати його правила. Для цього використовуються команди deny і permit, що відповідають правилам фільтрації deny і permit. Формат цих команд однаковий, їх можна знайти в Довідковому посібнику з команд.
NOTE: Важливо! Кожне правило може містити фільтр лише для одного з підтримуваних протоколів.
Декілька прикладів правил:
a. Команда, яка вмикає фільтр, щоб пакети TCP із хоста 192.168.1.33 могли передаватись на будь-яку адресу:
(config-acl)> permit tcp 192.168.1.33/32 0.0.0.0/32
b. Команда для заборони пінгування з усіх хостів підмережі 192.168.1.0/24 до будь-якої іншої підмережі:
(config-acl)> deny icmp 192.168.1.0/24 0.0.0.0/32
c. Команда, яка блокує IP-пакети від 192.168.1.0/24 до будь-якого хосту:
(config-acl)> deny ip 192.168.1.0/24 0.0.0.0/32
Команда (permit|deny ip) без вказівки типу протоколу об’єднує протоколи TCP і UDP в одну загальну конфігурацію (ip).
d. Команда, що дозволяє підключитися до веб-інтерфейсу маршрутизатора (192.168.1.1) через HTTP (порт TCP 80) з будь-якого хоста з Інтернету:
(config-acl)> permit tcp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 port eq 80
e. Щоб видалити правило зі списку, вам потрібно повторити команду, яка його встановлює, але з no перед нею.
До прикладу:
(config-acl)> no permit tcp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 port eq 80
Команда exit використовується для виходу з редагування списку доступу.
Заповнений список правил за допомогою наведених вище команд у конфігураційному файлі роутера буде виглядати так:
access-list MyList1 permit tcp 192.168.1.33/32 0.0.0.0/32 deny icmp 192.168.1.0/24 0.0.0.0/32 deny ip 192.168.1.0/24 0.0.0.0/32
Підготувавши список правил доступу, необхідно прив'язати його до необхідного інтерфейсу пристрою. Для цього в налаштуваннях кожного інтерфейсу використовується команда ip access-group {ACL_name} {direction in|out}.
Пам’ятайте, що інтерфейс також визначає напрямок потоку трафіку для кожного списку, до якого будуть застосовані ці правила. Напрямок визначається відносно інтерфейсу (вхідний напрямок - in — завжди на пристрій, а вихідний - out — з нього). Ця інформація докладно описана в статті Як працює міжмережевий екран?.
Наприклад, прив’яжіть створені правила до зовнішнього інтерфейсу ISP:
(config)> interface ISP (config-if)> ip access-group MyList1 out Network::Acl: Output "MyList1" access list added to "ISP".
У вихідному (out) напрямку інтерфейсу ISP (це напрямок від маршрутизатора до мережі цього інтерфейсу) передача будь-якого трафіку на будь-які адреси буде заборонена.
Список правил, подібних до нашого прикладу, може бути корисним, коли вам потрібно заборонити доступ до Інтернету через зовнішній інтерфейс усім хостам у вашій локальній мережі, крім одного. У нашому прикладі доступ і пінг заборонені для всіх хостів на 192.168.1.0, крім хоста з IP-адресою 192.168.1.33.
На інтерфейсах Keenetic застосовуються налаштування рівня доступу (security-level), які визначають логіку роботи мережевого екрану:
— private (локальний);
— public (зовнішній);
— protected (безпечний, локальний).
Схема дозволених і заборонених напрямків даних у маршрутизаторах Keenetic представлена на наступній діаграмі:
За замовчуванням маршрутизатор Keenetic приймає мережеві підключення лише з приватних інтерфейсів. Інтерфейси типу private дозволяють встановлювати підключення до публічних інтерфейсів і самого пристрою для керування та доступу до служб, що працюють на маршрутизаторі. Для інтерфейсу гостьової мережі доступ до маршрутизатора та його служб заборонено.
Між інтерфейсами private та між private і protected інтерфейсами за замовчуванням заборонено встановлювати з’єднання, але доступ можна дозволити за необхідності. Цей параметр залежить від налаштування параметра isolate-private. Якщо вам потрібно дозволити з’єднання між private інтерфейсами або між private і protected інтерфейсом (тобто не ізолювати доступ), виконайте команду no isolate-private.
З public інтерфейсів забороняється встановлювати підключення до будь-яких інтерфейсів, включаючи інші інтерфейси типу public та сам пристрій.
Інтерфейси типу protected можуть встановлювати з'єднання тільки з інтерфейсами типу public. За замовчуванням, доступ до пристроїв інтерфейсів типу private та інших інтерфейсів типу protected, а також до керування пристроєм, заборонений.
За допомогою команди security-level public|private|protected, ви можете змінювати рівень доступу інтерфейсів маршрутизатора.
Наприклад:
(config)> interface Bridge3 (config-if)> security-level protected Network::Interface::IP: "Bridge3": security level set to "protected".
Ви можете визначити рівень доступу зазначеного інтерфейсу, виконавши команду show interface {interface_name}.
Наприклад:
(config)> show interface ISP id: GigabitEthernet1 index: 1 type: GigabitEthernet description: Broadband connection interface-name: ISP link: up connected: yes state: up mtu: 1500 tx-queue: 2000 address: 193.0.174.199 mask: 255.255.255.0 uptime: 12433 global: yes defaultgw: yes priority: 700 security-level: public mac: 50:ff:20:2d:ed:ea auth-type: none
Рядок security-level line визначає рівень безпеки, відповідно до якого працює попередньо визначена політика міжмережевого екрану.
NOTE: Важливо! За замовчуванням усім створеним за допомогою командного рядка інтерфейсам призначається рівень доступу public.
Список назв інтерфейсів та їхніх системних ідентифікаторів можна переглянути таким чином: введіть команду show interface, а потім натисніть клавішу TAB на клавіатурі. Ви побачите список усіх доступних на даний момент інтерфейсів пристрою, включаючи попередньо встановлені сервісні інтерфейси.
TIP:Примітка
1. Маршрутизатор Keenetic підтримує протоколи IPv6 і IPv4. Для керування міжмережевим екраном IPv6 доступні лише мінімальні налаштування: увімкнути або вимкнути.
Ви может зробити це за допомогою команд ipv6 firewall (увімкнути), та no ipv6 firewall (вимкнути).
За замовчування міжмережевий екран для IPv6 увімкнений.
2. В маршрутизаторах Keenetic є рівень доступу protected. Цей рівень доступу аналогічний рівню доступу private але без доступу до маршрутизатора.
Тип protected встановлюється для інтерфейсу гостьової мережі Wi-Fi, коли параметр «Доступ до налаштувань інтернет-центру » вимкнено у веб-інтерфейсі на сторінці «Гостьовий сегмент» у розділі «Обмеження для пристроїв сегменту». За замовчуванням доступ до Keenetic заборонено з гостьової мережі. Якщо ви надасьте доступ до налаштувань, цей інтерфейс буде встановлено на рівень private .
3. Якщо вам потрібно застосувати велику кількість правил брандмауера, ви можете налаштувати правила, відредагувавши файл конфігурації startup-config.txt у будь якому текстовому редакторі. Після збереження змін необхідно завантажити файл назад на пристрій і перезавантажити його. Але редагувати конфігураційний файл слід дуже обережно, оскільки це може призвести до неможливості керування пристроєм, втрати працездатності окремих функцій, некоректного відображення налаштувань у веб-інтерфейсі.
Якщо ваш пристрій перестав працювати належним чином після завантаження відредагованого файлу конфігурації, радимо скинути налаштування користувача за допомогою кнопки Скидання та налаштувати Keenetic заново або загрузити робочий резервний файл конфігурації.