Автомонтирование SMB-шар с использованием KRB5

f6f998c0dedaf01f8cd4651b76e23d27

В некоторых случаях, может потребоваться автоматически на старте хоста монтировать smb-шары не при помощи файла с логином/паролем, а с помощью krb5.

Имеется (предусловие):

  • Введенная в домен VM на ubuntu 24 server LTS

  • Поставлены необходимые библиотеки из https://ubuntu.com/server/docs/how-to-set-up-sssd-with-ldap-and-kerberos

Для настройки нам потребуется:
1)Сгенерировать keytab-файл

ktutil ktutil: addent -password -p username@DOMAIN.COM -k 1 -f Password for username@DOMAIN.COM: ktutil: wkt /path/to/username.keytab ktutil: quit
2)Настроить подходящие права к файлу:
sudo chown username:username /path/to/username.keytabsudo chmod 600 /path/to/username.keytab
3)Получить Kerberos-тикет и записать в файл:
kinit -kt /path/to/username.keytab username@DOMAIN.COM
4)Поставить kstart для автоматического обновления тикетов
sudo apt-get install kstart
5)Создать systemd-service /etc/systemd/system/k5start-username.service:

[Unit] Description=Maintain Kerberos Ticket for username

[Service] 
Type=simple ExecStart=/usr/bin/kstart -U -t -K 60 -k /path/to/username.keytab -f /tmp/krb5cc_username 
User=username 
Restart=always

[Install] WantedBy=multi-user.target

6)включить systemd-сервис:

sudo systemctl daemon-reload 
sudo systemctl enable kstart-username.service 
sudo systemctl start kstart-username.service

7)создать systemd-сервис в /etc/systemd/system/mount-smb-username.service для монтирования шары:

[Unit] Description=Mount SMB Share for Username after k5start Requires=k5start-username.service After=k5start-username.service

[Service]
Type=oneshot ExecStart=/usr/bin/mount -t cifs //some/share/path /mnt/some_mnt_point -o sec=krb5,cruid=username

ExecStop=/usr/bin/umount /mnt/some_mnt_point RemainAfterExit=yes

[Install] WantedBy=multi-user.target

© Habrahabr.ru