想定環境
- KDCサーバ:
kdc0.example.com
- SSHサーバ:
krb-client0.example.com
- SSHクライアント:
krb-client1.example.com
ユーザーはkrb-client1
からkrb-client0
にSSH接続したい。
KDCサーバ(kdc0.example.com
)のセットアップ
-
必要なパッケージをインストールする。
user@kdc0:~$ sudo apt update user@kdc0:~$ sudo apt install -y krb5-kdc krb5-admin-server
-
新しいrealmsを作成する。
user@kdc0:~$ sudo krb5_newrealm
-
/etc/krb5.conf
を編集する。user@kdc0:~$ sudo vim /etc/krb5.conf
[libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true rdns = false fcc-mit-ticketflags = true [realms] EXAMPLE.COM = { kdc = kdc0.example.com admin_server = kdc0.example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
-
サービスを開始する。
user@kdc0:~$ sudo systemctl restart krb5-kdc user@kdc0:~$ sudo systemctl restart krb5-admin-server user@kdc0:~$ sudo systemctl enable krb5-kdc user@kdc0:~$ sudo systemctl enable krb5-admin-server
-
user
ユーザーを追加する。user@kdc0:~$ sudo kadmin.local kadmin.local: addprinc user kadmin.local: exit
-
krb-client0.example.com
用のkeytab
ファイルを生成するuser@kdc0:~$ sudo kadmin.local kadmin.local: addprinc -randkey host/krb-client0.example.com kadmin.local: ktadd -k /tmp/krb-client0.keytab host/krb-client0.example.com kadmin.local: quit
-
keytab
ファイルをkrb-client0.example.com
へ転送する。user@kdc0:~$ scp /tmp/krb-client0.keytab krb-client0.example.com:/tmp/
sshサーバ(krb-client0
)のセットアップ
-
必要なパッケージをインストールする。
user@krb-client0:~$ sudo apt update user@krb-client0:~$ sudo apt install krb5-user
-
/etc/krb5.keytab
に適切なパーミッションを与える。user@krb-client0:~$ sudo mv /tmp/krb-client0.keytab /etc/krb5.keytab user@krb-client0:~$ sudo chown root:root /etc/krb5.keytab user@krb-client0:~$ sudo chmod 600 /etc/krb5.keytab
-
/etc/krb5.conf
を編集する。user@krb-client0:~$ sudo vim /etc/krb5.conf
[libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false [realms] EXAMPLE.COM = { kdc = kdc0.example.com admin_server = kdc0.example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
sshクライアント(krb-client1
)のセットアップ
-
必要なパッケージをインストールする。
user@krb-client1:~$ sudo apt update user@krb-client1:~$ sudo apt install krb5-user
-
/etc/krb5.conf
を編集する。user@krb-client1:~$ sudo vim /etc/krb5.conf
[libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false [realms] EXAMPLE.COM = { kdc = kdc0.example.com admin_server = kdc0.example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
-
ssh接続をテストする。
user@krb-client1:~$ ssh -o GSSAPIAuthentication=yes [email protected]