История изменений
Исправление Atlant, (текущая версия) :
==== Скорректировал оформление, а то совсем ничего не понять.====
==== Разбито на два сообщения. №2 ====
ЧАСТЬ 2. НАСТРОЙКА КЛИЕНТА (АЛЬТ РАБОЧАЯ СТАНЦИЯ)
2.1. Установка необходимого ПО
apt-get update apt-get install librtpkcs11ecp pcsc-lite pcsc-lite-ccid pcsc-tools opensc pam_pkcs11 libp11 sssd
2.2. Настройка pcscd
systemctl stop pcscd.socket
systemctl disable pcscd.socket
systemctl enable –now pcscd
mkdir -p /etc/systemd/system/pcscd.service.d
cat > /etc/systemd/system/pcscd.service.d/override.conf << 'EOF'
[Service]
Restart=always
RestartSec=3
EOF
systemctl daemon-reload
2.3. Создание симлинков для модуля PAM
ln -sf /usr/lib64/librtpkcs11ecp.so /lib64/opensc-pkcs11.so
ln -sf /usr/lib64/librtpkcs11ecp.so /usr/lib64/opensc-pkcs11.so
2.4. Копирование сертификата CA
mkdir -p /etc/pki/tls/certs
cp /путь/к/cacert.pem /etc/pki/tls/certs/
chmod 644 /etc/pki/tls/certs/cacert.pem
2.5. Настройка pam_pkcs11
mkdir -p /etc/security/pam_pkcs11/cacerts
cp /etc/pki/tls/certs/cacert.pem /etc/security/pam_pkcs11/cacerts/
c_rehash /etc/security/pam_pkcs11/cacerts/
cat > /etc/security/pam_pkcs11/pam_pkcs11.conf << 'CONFIG'
pam_pkcs11
{
debug = false;
use_pkcs11_module = opensc;
use_mappers = "pwent";
nullok = true;
ca_dir = "/etc/security/pam_pkcs11/cacerts";
pkcs11_module opensc {
module = /usr/lib64/librtpkcs11ecp.so;
slot_num = 0;
}
}
CONFIG
2.6. Настройка PAM для различных служб
Для графического входа (LightDM):
cat > /etc/pam.d/lightdm << 'EOF'
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth sufficient pam_sss.so
auth required pam_unix.so try_first_pass
account sufficient pam_sss.so
account required pam_unix.so
password sufficient pam_sss.so
password required pam_unix.so sha512 shadow try_first_pass
session optional pam_sss.so
session required pam_unix.so
session optional pam_mate_keyring.so auto_start
EOF
Для экрана блокировки (mate-screensaver):
cat > /etc/pam.d/mate-screensaver << 'EOF'
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth sufficient pam_sss.so
auth required pam_unix.so try_first_pass
account sufficient pam_sss.so
account required pam_unix.so
session optional pam_sss.so
session required pam_unix.so
EOF
Для текстовой консоли (login):
cat > /etc/pam.d/login << 'EOF'
#%PAM-1.0
auth sufficient pam_sss.so
auth required pam_securetty.so
auth include common-auth
account include common-account
password include common-password
session substack common-session
session optional pam_lastlog.so nowtmp
session optional pam_motd.so
session optional pam_mail.so
-session optional pam_console.so
-session optional pam_ck_connector.so
EOF
Для переключения на root (su):
cat > /etc/pam.d/su << 'EOF'
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_succeed_if.so uid = 0 quiet
auth include system-auth
account include system-auth
password include system-auth
session include system-auth
session optional pam_xauth.so
EOF
2.7. Настройка common-auth и других common-файлов
cat > /etc/pam.d/common-auth << 'EOF'
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth sufficient pam_sss.so
auth required pam_unix.so try_first_pass
EOF
cat > /etc/pam.d/common-account << 'EOF'
#%PAM-1.0
account sufficient pam_sss.so
account required pam_unix.so
EOF
cat > /etc/pam.d/common-session << 'EOF'
#%PAM-1.0
session optional pam_sss.so
session required pam_unix.so
EOF
cat > /etc/pam.d/common-password << 'EOF'
#%PAM-1.0
password sufficient pam_sss.so
password required pam_unix.so sha512 shadow try_first_pass
EOF
2.8. Настройка SSSD
cat > /etc/sssd/sssd.conf << 'EOF'
[sssd]
config_file_version = 2
services = nss, pam
domains = ДОМЕН
[nss]
[pam]
pam_cert_auth = True
pam_p11_allowed_services = +gdm-password, +gdm-smartcard, +login, +sshd, +mate-screensaver
pam_cert_db_path = /etc/pki/tls/certs/cacert.pem
p11_child_timeout = 60
[domain/ДОМЕН]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
default_shell = /bin/bash
fallback_homedir = /home/%d/%u
ad_gpo_ignore_unreadable = True
ad_gpo_access_control = permissive
krb5_auth_timeout = 60
ldap_user_extra_attrs = userPrincipalName
ldap_user_certificate = userCertificate
[certmap/ДОМЕН/adcerts]
matchrule = .ДОМЕН.
maprule = (userPrincipalName={subject_principal})
EOF
chmod 600 /etc/sssd/sssd.conf
2.9. Настройка LightDM
cat >> /etc/lightdm/lightdm.conf << 'EOF'
[Seat:*]
greeter-show-manual-login=true
greeter-hide-users=false
user-session=mate
allow-guest=false
EOF
2.10. Создание пользователя в AccountsService
mkdir -p /var/lib/AccountsService/users
cat > /var/lib/AccountsService/users/ПОЛЬЗОВАТЕЛЬ << 'EOF'
[User]
SystemAccount=false
XSession=mate
Icon=
EOF
chmod 644 /var/lib/AccountsService/users/ПОЛЬЗОВАТЕЛЬ
2.11. Настройка UDEV для правильных прав на токен
cat > /etc/udev/rules.d/99-rutoken.rules << 'EOF'
# Rutoken ECP
ACTION=="add|change", SUBSYSTEM=="usb", ATTRS{idVendor}=="0a89", ATTRS{idProduct}=="0020", MODE="0666"
EOF
udevadm control –reload-rules
udevadm trigger
2.12. Настройка автоматического перезапуска служб после ждущего режима
cat > /etc/systemd/system/resume-pcscd.service << 'EOF'
[Unit]
Description=Restart pcscd and sssd after resume
After=suspend.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart pcscd
ExecStart=/bin/sleep 2
ExecStart=/bin/systemctl restart sssd
ExecStart=/bin/sleep 1
[Install]
WantedBy=suspend.target
EOF
systemctl enable resume-pcscd.service
2.13. Создание домашней директории пользователя
mkdir -p /home/ДОМЕН/ПОЛЬЗОВАТЕЛЬ
chown -R ПОЛЬЗОВАТЕЛЬ:"domain users" /home/ДОМЕН/ПОЛЬЗОВАТЕЛЬ
chmod 700 /home/ДОМЕН/ПОЛЬЗОВАТЕЛЬ
2.14. Запуск и проверка служб
systemctl restart pcscd sssd lightdm systemctl enable pcscd sssd lightdm
2.15. Проверка работы
Проверка токена:
pkcs11-tool –module /usr/lib64/librtpkcs11ecp.so –pin ПИН_ПОЛЬЗОВАТЕЛЯ –login –list-objects
Должны увидеть Public Key, Private Key и Certificate.
Проверка Kerberos:
kinit -X X509_user_identity=PKCS11:librtpkcs11ecp.so ПОЛЬЗОВАТЕЛЬ
klist
Исходная версия Atlant, :
==== Скорректировал оформление, а то совсем ничего не понять.====
==== Разбито на два сообщения. №2 ====
ЧАСТЬ 2. НАСТРОЙКА КЛИЕНТА (АЛЬТ РАБОЧАЯ СТАНЦИЯ)
2.1. Установка необходимого ПО
apt-get update apt-get install librtpkcs11ecp pcsc-lite pcsc-lite-ccid pcsc-tools opensc pam_pkcs11 libp11 sssd
2.2. Настройка pcscd
systemctl stop pcscd.socket
systemctl disable pcscd.socket
systemctl enable –now pcscd
mkdir -p /etc/systemd/system/pcscd.service.d
cat > /etc/systemd/system/pcscd.service.d/override.conf << 'EOF'
[Service]
Restart=always
RestartSec=3
EOF
systemctl daemon-reload
2.3. Создание симлинков для модуля PAM
ln -sf /usr/lib64/librtpkcs11ecp.so /lib64/opensc-pkcs11.so
ln -sf /usr/lib64/librtpkcs11ecp.so /usr/lib64/opensc-pkcs11.so
2.4. Копирование сертификата CA
mkdir -p /etc/pki/tls/certs
cp /путь/к/cacert.pem /etc/pki/tls/certs/
chmod 644 /etc/pki/tls/certs/cacert.pem
2.5. Настройка pam_pkcs11
mkdir -p /etc/security/pam_pkcs11/cacerts
cp /etc/pki/tls/certs/cacert.pem /etc/security/pam_pkcs11/cacerts/
c_rehash /etc/security/pam_pkcs11/cacerts/
cat > /etc/security/pam_pkcs11/pam_pkcs11.conf << 'CONFIG'
pam_pkcs11
{
debug = false;
use_pkcs11_module = opensc;
use_mappers = "pwent";
nullok = true;
ca_dir = "/etc/security/pam_pkcs11/cacerts";
pkcs11_module opensc {
module = /usr/lib64/librtpkcs11ecp.so;
slot_num = 0;
}
}
CONFIG
2.6. Настройка PAM для различных служб
Для графического входа (LightDM):
cat > /etc/pam.d/lightdm << 'EOF'
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth sufficient pam_sss.so
auth required pam_unix.so try_first_pass
account sufficient pam_sss.so
account required pam_unix.so
password sufficient pam_sss.so
password required pam_unix.so sha512 shadow try_first_pass
session optional pam_sss.so
session required pam_unix.so
session optional pam_mate_keyring.so auto_start
EOF
Для экрана блокировки (mate-screensaver):
cat > /etc/pam.d/mate-screensaver << 'EOF'
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth sufficient pam_sss.so
auth required pam_unix.so try_first_pass
account sufficient pam_sss.so
account required pam_unix.so
session optional pam_sss.so
session required pam_unix.so
EOF
Для текстовой консоли (login):
cat > /etc/pam.d/login << 'EOF'
#%PAM-1.0
auth sufficient pam_sss.so
auth required pam_securetty.so
auth include common-auth
account include common-account
password include common-password
session substack common-session
session optional pam_lastlog.so nowtmp
session optional pam_motd.so
session optional pam_mail.so
-session optional pam_console.so
-session optional pam_ck_connector.so
EOF
Для переключения на root (su):
cat > /etc/pam.d/su << 'EOF'
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_succeed_if.so uid = 0 quiet
auth include system-auth
account include system-auth
password include system-auth
session include system-auth
session optional pam_xauth.so
EOF
2.7. Настройка common-auth и других common-файлов
cat > /etc/pam.d/common-auth << 'EOF'
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth sufficient pam_sss.so
auth required pam_unix.so try_first_pass
EOF
cat > /etc/pam.d/common-account << 'EOF'
#%PAM-1.0
account sufficient pam_sss.so
account required pam_unix.so
EOF
cat > /etc/pam.d/common-session << 'EOF'
#%PAM-1.0
session optional pam_sss.so
session required pam_unix.so
EOF
cat > /etc/pam.d/common-password << 'EOF'
#%PAM-1.0
password sufficient pam_sss.so
password required pam_unix.so sha512 shadow try_first_pass
EOF
2.8. Настройка SSSD
cat > /etc/sssd/sssd.conf << 'EOF'
[sssd]
config_file_version = 2
services = nss, pam
domains = ДОМЕН
[nss]
[pam]
pam_cert_auth = True
pam_p11_allowed_services = +gdm-password, +gdm-smartcard, +login, +sshd, +mate-screensaver
pam_cert_db_path = /etc/pki/tls/certs/cacert.pem
p11_child_timeout = 60
[domain/ДОМЕН]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
default_shell = /bin/bash
fallback_homedir = /home/%d/%u
ad_gpo_ignore_unreadable = True
ad_gpo_access_control = permissive
krb5_auth_timeout = 60
ldap_user_extra_attrs = userPrincipalName
ldap_user_certificate = userCertificate
[certmap/ДОМЕН/adcerts]
matchrule = .ДОМЕН.
maprule = (userPrincipalName={subject_principal})
EOF
chmod 600 /etc/sssd/sssd.conf
2.9. Настройка LightDM
cat >> /etc/lightdm/lightdm.conf << 'EOF'
[Seat:*]
greeter-show-manual-login=true
greeter-hide-users=false
user-session=mate
allow-guest=false
EOF
2.10. Создание пользователя в AccountsService
mkdir -p /var/lib/AccountsService/users
cat > /var/lib/AccountsService/users/ПОЛЬЗОВАТЕЛЬ << 'EOF'
[User]
SystemAccount=false
XSession=mate
Icon=
EOF
chmod 644 /var/lib/AccountsService/users/ПОЛЬЗОВАТЕЛЬ
2.11. Настройка UDEV для правильных прав на токен
cat > /etc/udev/rules.d/99-rutoken.rules << 'EOF'
# Rutoken ECP
ACTION=="add|change", SUBSYSTEM=="usb", ATTRS{idVendor}=="0a89", ATTRS{idProduct}=="0020", MODE="0666"
EOF
udevadm control –reload-rules udevadm trigger
2.12. Настройка автоматического перезапуска служб после ждущего режима
cat > /etc/systemd/system/resume-pcscd.service << 'EOF'
[Unit]
Description=Restart pcscd and sssd after resume
After=suspend.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart pcscd
ExecStart=/bin/sleep 2
ExecStart=/bin/systemctl restart sssd
ExecStart=/bin/sleep 1
[Install]
WantedBy=suspend.target
EOF
systemctl enable resume-pcscd.service
2.13. Создание домашней директории пользователя
mkdir -p /home/ДОМЕН/ПОЛЬЗОВАТЕЛЬ
chown -R ПОЛЬЗОВАТЕЛЬ:"domain users" /home/ДОМЕН/ПОЛЬЗОВАТЕЛЬ
chmod 700 /home/ДОМЕН/ПОЛЬЗОВАТЕЛЬ
2.14. Запуск и проверка служб
systemctl restart pcscd sssd lightdm systemctl enable pcscd sssd lightdm
2.15. Проверка работы
Проверка токена:
pkcs11-tool –module /usr/lib64/librtpkcs11ecp.so –pin ПИН_ПОЛЬЗОВАТЕЛЯ –login –list-objects
Должны увидеть Public Key, Private Key и Certificate.
Проверка Kerberos:
kinit -X X509_user_identity=PKCS11:librtpkcs11ecp.so ПОЛЬЗОВАТЕЛЬ
klist