Skip to main content

Захист Fledge

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

  • REST API за замовчуванням підтримує незашифровані HTTP-запити, його можна переключити на використання HTTPS.
  • REST API і графічний інтерфейс можна захистити, вимагаючи автентифікацію, щоб запобігти зміні конфігурації системи Fledge користувачами.
  • Автентифікація може здійснюватися за допомогою імені користувача і пароля або за допомогою сертифіката автентифікації.
  • Fledge підтримує кілька різних типів користувачів або ролей, тому слід подбати про те, щоб надавати користувачам тільки той доступ, який їм потрібен, і, зокрема, зарезервувати права адміністратора.
  • Якщо автентифікація здійснюється за допомогою імені користувача та пароля, адміністратор може вибрати один з набору політик паролів, які визначають обмеження щодо того, які символи повинні бути включені в будь-який пароль, а також вимагають мінімальної довжини пароля.
  • Система може бути налаштована таким чином, щоб вимагати від користувачів регулярної зміни пароля, а список попередніх паролів зберігається, щоб запобігти простому повторному використанню старих паролів.
  • Якщо користувач намагається пройти автентифікацію, але їй не вдається, його буде заблоковано на короткий час. Якщо відбувається кілька невдалих спроб, період блокування буде збільшуватися до тих пір, поки користувач не буде заблокований на 24 години. Це робиться для того, щоб запобігти спробам автоматизованих систем вгадати пароль.
  • Fledge веде повний журнал аудиту всіх оновлень конфігурації Fledge та інших подій. Це дозволяє провести повний аудит того, хто і коли вносив зміни в конфігурацію Fledge і які зміни були зроблені.

Примітка

Хоча всі ці функції підвищують безпеку установки Fledge, все ж рекомендується запускати Fledge за допомогою брандмауерів і обмежувати ті мережі, які мають доступ до порту API Fledge, при використанні у виробничих цілях.

Увімкнення шифрування HTTPS

Fledge може підтримувати як HTTP, так і HTTPS як транспорт для REST API, який використовується для керування. Щоб перемикатися між цими двома транспортними протоколами, виберіть параметр Configuration в меню ліворуч і виберіть Admin API у дереві конфігурації, що з’явиться. ,

admin_api

Перший варіант, який ви побачите, — це прапорець Enable HTTP, щоб вибрати HTTPS як протокол для використання, цей прапорець потрібно зняти.

enable_https

Якщо цей прапорець не позначено, на сторінці стають активними два параметри: HTTPS Port і Certificate Name. Порт HTTPS – це порт, який Fledge прослуховуватиме для HTTPS-запитів, за замовчуванням для цього порт 1995.

Certificate Name — це назва сертифіката, який використовуватиметься для шифрування. За умовчанням використовується самопідписаний сертифікат під назвою fledge, який створюється як частина процесу встановлення. Цей сертифікат є унікальним для встановлення fledge, але не підписаний центром сертифікації. Якщо вам потрібна додаткова безпека використання підписаного сертифіката, ви можете скористатися функцією Fledge certificate_store , щоб завантажити сертифікат, створений і підписаний центром сертифікації.

Увімкнувши HTTPS і вибравши зберегти, потрібно перезапустити Fledge, щоб зміни набули чинності. Ви також повинні оновити налаштування підключення в графічному інтерфейсі користувача, щоб використовувати транспорт HTTPS і правильний порт.

Примітка: якщо використовується стандартний самопідписаний сертифікат, вам може знадобитися авторизувати браузер для підключення до IP:PORT. Просто відкрийте нову вкладку браузера та введіть URL-адресу (https://YOUR_FLEDGE_IP:1995) ; Потім дотримуйтесь інструкцій браузера, щоб дозволити підключення та закрити вкладку. У графічному інтерфейсі Fledge ви повинні побачити зелений значок (Fledge запущено).

connection_https

Запрос входу користувача

Щоб налаштувати REST API та GUI так, щоб користувачі входили в систему перед доступом до Fledge, виберіть опцію Configuration в меню ліворуч, а потім виберіть Admin API у дереві конфігурації, що з’явиться.

admin_api

У цій категорії конфігурації, яка потім відображається, цікавлять два конкретних елементи: Authentication і Authentication method

auth_options

Виберіть поле Authentication, яке буде обов’язковим, а Authentication method — пароль. Натисніть Save внизу діалогового вікна.

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

Після перезапуску оновіть сторінку веб-переглядача. Вам має бути запропоновано запит на вхід.

login

Ім’я користувача за замовчуванням – «admin» з паролем «fledge». Використовуйте їх, щоб увійти до Fledge, вам має бути запропоновано дещо змінений вигляд інформаційної панелі.

login_dashboard

Рядок стану тепер містить ім’я користувача, який наразі ввійшов у систему, а в меню ліворуч з’явився новий параметр User Management.

Зміна Вашого паролю

Верхній рядок стану графічного інтерфейсу користувача Fledge тепер містить ім’я користувача праворуч і стрілку, що розкривається вниз. Вибір цієї стрілки дає кілька параметрів, включаючи один із позначкою Profile.

user_pulldown

Примітка

У це спадне меню також переміщено параметри Shutdown та Restart.

Якщо вибрати параметр Profile, відобразиться профіль користувача.

profile

У нижній частині цього профілю відображається опція change password. Натисніть на цей текст, і з’явиться діалогове вікно нового пароля.

password

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

Механізм ротації пароля

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

password_rotation

Кожного разу, коли користувач входить у Fledge, вік його пароля перевіряється на максимально допустимий вік пароля. Якщо пароль досяг цього віку, користувач не ввійшов у систему, а замість цього змушений ввести новий пароль. Потім вони повинні увійти з цим новим паролем. Крім того, система зберігає історію трьох останніх паролів, які використовував користувач, і запобігає їх повторному використанню.

Керування користувачами

Опція керування користувачами стає активною, коли Fledge налаштовано на вимогу автентифікації користувачів. Це вмикається на сторінці Admin API у пункті меню Configuration. У меню ліворуч з’явиться новий пункт меню User Management.

Примітка

Після налаштування параметра автентифікації як обов’язкового на сторінці конфігурації примірник Fledge слід перезапустити.

user_management

Сторінки керування користувачами дозволяють

  • Додавання нових користувачів.
  • Видалення користувачів.
  • Скидання паролів користувачів.
  • Зміна ролі користувача.
  • Зміна даних користувача

Наразі Fledge підтримує чотири ролі для користувачів:

  • Administrator: користувач із роллю адміністратора може повністю налаштувати Fledge, переглядати дані, зчитані примірником Fledge, а також керувати користувачами Fledge.
  • Editor: користувач із цією роллю може налаштувати Fledge і переглядати дані, зчитані Fledge. Користувач не може керувати іншими користувачами або додавати нових користувачів.
  • Viewer: користувач, який може лише переглядати конфігурацію примірника Fledge і дані, які були прочитані Fledge. Користувач не має можливості будь-яким чином змінювати примірник Fledge.
  • Data Viewer: користувач, який може лише переглядати дані у Fledge, а не конфігурацію самої Fledge. Користувач не має можливості будь-яким чином змінювати примірник Fledge.

Обмеження стосуються як викликів API, які можна зробити після автентифікації певних користувачів, так і доступу, який користувач матиме до графічного інтерфейсу користувача. Користувачі помітять, що обидва пункти меню будуть повністю видалені або параметри на певних сторінках будуть недоступні.

Додавання користувачів

Щоб додати нового користувача зі сторінки User Management, виберіть піктограму Add User у верхньому правому куті панелі User Management. з’явиться нове діалогове вікно, у якому ви зможете ввести дані цього користувача.

add_user

Ви можете вибрати роль для нового користувача, ім’я користувача та початковий пароль для користувача. Тільки користувачі з роллю admin можуть додавати нових користувачів.

Оновити інформацію про користувача

Опція редагування користувача дозволяє оновлювати ім’я, метод автентифікації та опис користувача. Цей параметр доступний лише для користувачів із роллю admin.

update_user

Зміна ролей користувача

Роль, яку має певний користувач під час входу, можна змінити на сторінці User Management. Просто виберіть посилання change role біля користувача, роль якого ви хочете змінити.

change_role

Виберіть нову роль для користувача зі спадного списку та натисніть Update. Нова роль почне діяти під час наступного входу користувача.

Скинути пароль користувача

Користувачі з роллю admin можуть скинути паролі інших користувачів. На сторінці User Management виберіть посилання reset password праворуч від імені користувача, для якого ви хочете скинути пароль. З’явиться нове діалогове вікно із запитом на створення нового пароля для користувача.

reset_password

Введіть новий пароль і підтвердьте цей пароль, ввівши його вдруге, і натисніть Update.

Видалення користувача

Користувачі можуть бути видалені зі сторінки User Management. Виберіть посилання delete праворуч від користувача, якого потрібно видалити. З’явиться діалогове вікно підтвердження. Виберіть Delete, і користувача буде видалено.

delete_user

Ви не можете видалити останнього користувача з роллю admin, оскільки це не дозволить вам керувати Fledge.

Сховище Сертифікатів

Fledge Certificate Store дозволяє зберігати сертифікати, на які можуть посилатися різні компоненти в системі, зокрема ці сертифікати використовуються для шифрування трафіку REST API та автентифікації. Вони також можуть використовуватися окремими плагінами, які потребують сертифіката того чи іншого типу. Кілька різних типів сертифікатів, які підтримуються сховищем сертифікатів:

  • Файли PEM, створені більшістю центрів сертифікації
  • Файли CRT, які використовуються GlobalSign, VeriSign і Thawte
  • Бінарні сертифікати CER X.509
  • Сертифікати JSON, які використовує Google Cloud Platform

Функція Certificate Store доступна в меню ліворуч, вибравши Certificate Store. Якщо вибрати, буде показано поточний вміст сховища.

certificate_store

Сертифікати можна видалити, вибравши опцію видалення біля назви сертифіката, зауважте, що ключі та сертифікати можна видалити окремо. Самопідписаний сертифікат, створений під час встановлення, не можна видалити.

Щоб додати новий сертифікат, виберіть піктограму Import у верхньому правому куті дисплея сховища сертифікатів.

update_certificate

З’явиться діалогове вікно, яке дозволяє вибрати файл ключа та/або файл сертифіката та завантажити його до Certificate Store. Параметр дозволяє дозволити перезапис існуючого сертифіката. За замовчуванням сертифікати не можуть бути перезаписані.

Генерація нових сертифікатів авторизації для входу користувача

Стандартний сертифікат ca доступний у $FLEDGE_DATA/etc/certs і має назву ca.cert. Також стандартні сертифікати адміністратора та не адміністратора доступні в тому самому місці, яке використовуватиметься для входу за допомогою сертифіката у Fledge, тобто admin.cert, user.cert. Дивиться

Нижче наведено кроки для створення спеціального сертифіката разом із наявними сертифікатами авторизації на основі fledge.

  1. Створіть новий сертифікат для імені користувача. Припустимо test
$ cd $FLEDGE_ROOT
$ ./scripts/auth_certificates user test 365

Here script arguments are: $1=user $2=FLEDGE_USERNAME $3=SSL_DAYS_EXPIRATION

І тепер ви можете знайти test cert всередині $FLEDGE_DATA/etc/certs/

  1. Тепер настав час створити користувача з іменем test (з урахуванням регістру). Також лише адміністратор може створити користувача. Нижче наведено команди cURL
$ AUTH_TOKEN=$(curl -d '{"username": "admin", "password": "fledge"}' -sX POST <PROTOCOL>://<FLEDGE_IP>:<FLEDGE_REST_API_PORT>/fledge/login | jq '.token' | tr -d '""')
$ curl -H "authorization: $AUTH_TOKEN" -skX POST <PROTOCOL>://<FLEDGE_IP>:<FLEDGE_REST_API_PORT>/fledge/admin/user -d '{"username":"test","real_name":"Test","access_method":"cert","description":"Non-admin based role","role_id":2}'

Примітка

role_id:2 (non-admin user) | якщо новому користувачеві потрібні права адміністратора, тоді передайте role_id:1

Ви також можете звернутися до документації cURL команд. Якщо ви не вмієте працювати з командами cURL, скористайтеся кроками GUI і переконайтеся, що увійшли як адміністратор.

Примітка

Кроки a (створення сертифіката) і b (створення користувача) можна виконувати в будь-якому порядку.

  1. Тепер ви можете увійти за допомогою щойно створеного користувача test із таким cURL
$ curl -T $FLEDGE_DATA/etc/certs/test.cert -skX POST <PROTOCOL>://<FLEDGE_IP>:<FLEDGE_REST_API_PORT>/fledge/login

Чи скористайтеся GUI Require User Login