timedatectl set-timezone Europe/Moscow
Просмотреть список временных зон можно командой:
timedatectl list-timezones
apt install chrony
... pool domain.local # pool ...
В данном случае указываем либо список IP-адресов (доменных имен) NTP-серверов в каждой строчке, либо просто указываем имя домена
systemctl enable chrony --now
nginx -V
apt install git build-essential libpcre++-dev zlib1g-dev libkrb5-dev libssl-dev libxslt-dev libgd-dev
cd ~ mkdir nginx-dev cd nginx-dev wget https://nginx.org/download/nginx-1.xx.x.tar.gz tar -xzvf nginx-1.xx.x.tar.gz
cd ~/nginx-dev git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git cd nginx-1.xx.x ./configure --with-compat --add-dynamic-module=../spnego-http-auth-nginx-module make modules
В папке objs должен появиться файл ngx_http_auth_spnego_module.so
mkdir -p /usr/lib/nginx/modules cp path/to/ngx_http_auth_spnego_module.so /usr/lib/nginx/modules/
vi /etc/nginx/modules-available/spnego-http-auth-nginx-module.conf
load_module "/usr/lib/nginx/modules/ngx_http_auth_spnego_module.so";
cd /etc/nginx/modules-enabled ln -s ../modules-available/spnego-http-auth-nginx-module.conf systemctl reload nginx
ktpass -princ host/foo.domain.local@DOMAIN.LOCAL -mapuser spnego_user@DOMAIN.LOCAL -pass * -out host.keytab -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1 ktpass -princ HTTP/foo.domain.local@DOMAIN.LOCAL -mapuser spnego_user@DOMAIN.LOCAL -pass * -out http.keytab -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1
где foo.domain.local - адрес сайта, spnego_user - пользователь для SPNEGO
setspn -Q */foo.domain.local
где foo.domain.local - адрес сайта
Checking domain DC=domain,DC=local
CN=...,OU=...,DC=domain,DC=local
HTTP/foo.domain.local
host/foo.domain.local
apt install krb5-user krb5-multidev libkrb5-dev
[libdefaults] default_realm = DOMAIN.LOCAL default_tgs_enctypes = aes256-cts-hmac-sha1-96 default_tkt_enctypes = aes256-cts-hmac-sha1-96 kdc_timesync = 1 ccache_type = 4 forwardable = false proxiable = false ticket_lifetime = 24h default_keytab_name = FILE:/etc/krb5.keytab ... [realms] ... DOMAIN.LOCAL = { kdc = dc.domain.local admin_server = dc.domain.local default_domain = domain.local } ... [domain_realm] ... .domain.local = DOMAIN.LOCAL domain.local = DOMAIN.LOCAL
# ktutil ktutil: rkt host.keytab ktutil: rkt http.keytab ktutil: wkt /etc/krb5.keytab ktutil: quit
klist -kt /etc/krb5.keytab
Должно вывести примерно следующее
Keytab name: FILE:/etc/krb5.keytab KVNO Timestamp Principal ---- ----------------- -------------------------------------------------------- 1 02/19/13 04:02:48 host/foo.domain.local@DOMAIN.LOCAL 2 02/19/13 04:02:48 HTTP/foo.domain.local@DOMAIN.LOCAL
kinit -5 -V -k -t /etc/krb5.keytab HTTP/foo.domain.local
При успешной авторизации должно вывести
Authenticated to Kerberos v5
chmod 440 /etc/krb5.keytab chown root:www-data /etc/krb5.keytab
server { ... server_name foo.domain.local; ... auth_gss on; auth_gss_realm DOMAIN.LOCAL; auth_gss_keytab /etc/krb5.keytab; auth_gss_service_name HTTP/foo.domain.local; auth_gss_allow_basic_fallback off; }
cd /etc/nginx/sites-enabled ln -s ../sites-available/site-name systemctl reload nginx
about:config в строку адресаnetwork.negotiate-auth.trusted-uris network.negotiate-auth.using-native-gsslib выставлен в true