Захист 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 у дереві конфігурації, що з’явиться. ,

Перший варіант, який ви побачите, — це прапорець Enable HTTP, щоб вибрати 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 запущено).

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

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

Виберіть поле Authentication, яке буде обов’язковим, а Authentication method — пароль. Натисніть Save внизу діалогового вікна.
Щоб зміни набули чинності, Fledge потрібно перезапустити, це можна зробити в графічному інтерфейсі користувача, вибравши пункт перезапуску у верхній панелі стану Fledge. Підтвердьте перезапуск Fledge і дочекайтеся його перезапуску.
Після перезапуску оновіть сторінку веб-переглядача. Вам має бути запропоновано запит на вхід.

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

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

Примітка
У це спадне меню також переміщено параметри Shutdown та Restart.
Якщо вибрати параметр Profile, відобразиться профіль користувача.

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

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

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

Сторінки керування користувачами дозволяють
- Додавання нових користувачів.
- Видалення користувачів.
- Скидання паролів користувачів.
- Зміна ролі користувача.
- Зміна даних користувача
Наразі Fledge підтримує чотири ролі для користувачів:
- Administrator: користувач із роллю адміністратора може повністю налаштувати Fledge, переглядати дані, зчитані примірником Fledge, а також керувати користувачами Fledge.
- Editor: користувач із цією роллю може налаштувати Fledge і переглядати дані, зчитані Fledge. Користувач не може керувати іншими користувачами або додавати нових користувачів.
- Viewer: користувач, який може лише переглядати конфігурацію примірника Fledge і дані, які були прочитані Fledge. Користувач не має можливості будь-яким чином змінювати примірник Fledge.
- Data Viewer: користувач, який може лише переглядати дані у Fledge, а не конфігурацію самої Fledge. Користувач не має можливості будь-яким чином змінювати примірник Fledge.
Обмеження стосуються як викликів API, які можна зробити після автентифікації певних користувачів, так і доступу, який користувач матиме до графічного інтерфейсу користувача. Користувачі помітять, що обидва пункти меню будуть повністю видалені або параметри на певних сторінках будуть недоступні.
Додавання користувачів
Щоб додати нового користувача зі сторінки User Management, виберіть піктограму Add User у верхньому правому куті панелі User Management. з’явиться нове діалогове вікно, у якому ви зможете ввести дані цього користувача.

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

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

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

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

Ви не можете видалити останнього користувача з роллю admin, оскільки це не дозволить вам керувати Fledge.
Сховище Сертифікатів
Fledge Certificate Store дозволяє зберігати сертифікати, на які можуть посилатися різні компоненти в системі, зокрема ці сертифікати використовуються для шифрування трафіку REST API та автентифікації. Вони також можуть використовуватися окремими плагінами, які потребують сертифіката того чи іншого типу. Кілька різних типів сертифікатів, які підтримуються сховищем сертифікатів:
- Файли PEM, створені більшістю центрів сертифікації
- Файли CRT, які використовуються GlobalSign, VeriSign і Thawte
- Бінарні сертифікати CER X.509
- Сертифікати JSON, які використовує Google Cloud Platform
Функція Certificate Store доступна в меню ліворуч, вибравши Certificate Store. Якщо вибрати, буде показано поточний вміст сховища.

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

З’явиться діалогове вікно, яке дозволяє вибрати файл ключа та/або файл сертифіката та завантажити його до Certificate Store. Параметр дозволяє дозволити перезапис існуючого сертифіката. За замовчуванням сертифікати не можуть бути перезаписані.
Генерація нових сертифікатів авторизації для входу користувача
Стандартний сертифікат ca доступний у $FLEDGE_DATA/etc/certs і має назву ca.cert. Також стандартні сертифікати адміністратора та не адміністратора доступні в тому самому місці, яке використовуватиметься для входу за допомогою сертифіката у Fledge, тобто admin.cert, user.cert. Дивиться
Нижче наведено кроки для створення спеціального сертифіката разом із наявними сертифікатами авторизації на основі fledge.
- Створіть новий сертифікат для імені користувача. Припустимо 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/
- Тепер настав час створити користувача з іменем 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 (створення користувача) можна виконувати в будь-якому порядку.
- Тепер ви можете увійти за допомогою щойно створеного користувача 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