добавление пользователя
Для добавления пользователя идём в меню Система-Доступ-Пользователи. Нажимаем плюс и добавляем пользователя:
Далее редактируем пользователя - вводим для него пароль, и другие парамтры, среди них следует обратить внимание на оболочку - по умолчанию выбрана /usr/bin/nologin - в этом случае пользователь не сможет попасть в консоль, для успешного логина по ssh необходимо выбрать другую оболочку, например /bin/sh
Для возможности логиниться в ssh по ключам необходимо скопировать ваш ключ в поле Авторизованные ключи:
Также мы можем добавить нашего пользователя в определённую группу:
Интеграция с freeipa
- в System -> Access -> Servers нужно добавить LDAP сервер:
- descriptive name: freeipa (можно что угодно)
- hostname or ip address:
- bind credentials - user dn: uid=admin,cn=users,cn=accounts,dc=rnd,dc=jun,dc=profi
- bind credentials - password: <пароль>
- search scope: entire subtree
- base dn: dc=rnd,dc=jun,dc=profi
- authentication containers: выбрать всё
- user naming attibute: uid
- default groups: admins
- automatic user creation: yes
- далее нужно в System -> Access -> Tester попытаться "зайти" под всеми тремя доменными пользователями. для всех трёх должна отобразиться надпись "User authenticated successfully". эта операция создаст на opnsense этих пользователей, причём у всех них будет группа admins, что позволит им всем заходить в web ui
- нужно подредактировать пользователей
- нужно запретить andrey доступ (он не в группе jun-net). в System -> Access -> Users нажимаем на редактирование пользователя andrey и ставим галочку disabled и убираем группу admins
- нужно для admin и max добавить Login shell, чтобы работал ssh. для двух этих пользователей в редактировании выбираем /bin/sh в Login shell
- стоит ещё отключить эту группу всем новым доменным пользователям. в System -> Access -> Servers редактируем наш freeipa и убираем все группы из Default groups
- теперь нужно настроить много чего. всё это происходит в System -> Settings -> Administration
- вход в webui. внизу в разделе Authentication в Server выбираем И freeipa И Local Database (если забыть отметить Local Database, то можно отрезать ноги, потому что вход под root будет недоступен)
- sudo. там же выбрать Sudo = Ask password и выбрать для судо группы wheel,admins (по умолчанию только wheel)
- ssh. поставить галочку Enable Secure Shell, Login Group = wheel, admins, галочка на Permit password login
сертификаты
- генерация корневого сертификата CA: openssl req -x509 -newkey rsa:4096 -keyout ca.key -out ca.crt -nodes -subj "/CN=Jun Profi CA"
- ключ сервера + запрос на подпись в CA: openssl req -newkey rsa:2048 -keyout srv.key -out srv.csr -nodes -subj "/CN=git.jun.profi"
- подписать запрос CA: openssl x509 -req -in srv.csr -CA ca.crt -CAkey ca.key -out srv.crt -extfile <(printf "subjectAltName=DNS:git.jun.profi")