ubuntu/Kerberos\343\201\253\343\202\210\343\202\213\343\202\267\343\203\263\343\202\260\343\203\253\343\202\265\343\202\244\343\203\263\343\202\252\343\203\263\343\202\222\343\202\273\343\203\203\343\203\210\343\202\242\343\203\203\343\203\227\343\201\231\343\202\213.md
... ...
@@ -0,0 +1,163 @@
1
+## KDCサーバ(`kdc0.example.com`)のセットアップ
2
+
3
+1. 必要なパッケージをインストールする。
4
+
5
+ ```
6
+ user@kdc0:~$ sudo apt update
7
+ user@kdc0:~$ sudo apt install -y krb5-kdc krb5-admin-server
8
+ ```
9
+
10
+1. 新しいrealmsを作成する。
11
+
12
+ ```
13
+ user@kdc0:~$ sudo krb5_newrealm
14
+ ```
15
+
16
+1. `/etc/krb5.conf`を編集する。
17
+
18
+ ```
19
+ user@kdc0:~$ sudo vim /etc/krb5.conf
20
+ ```
21
+
22
+ ```
23
+ [libdefaults]
24
+ default_realm = EXAMPLE.COM
25
+ dns_lookup_realm = false
26
+ dns_lookup_kdc = false
27
+ kdc_timesync = 1
28
+ ccache_type = 4
29
+ forwardable = true
30
+ proxiable = true
31
+ rdns = false
32
+ fcc-mit-ticketflags = true
33
+
34
+ [realms]
35
+ EXAMPLE.COM = {
36
+ kdc = kdc0.example.com
37
+ admin_server = kdc0.example.com
38
+ }
39
+
40
+ [domain_realm]
41
+ .example.com = EXAMPLE.COM
42
+ example.com = EXAMPLE.COM
43
+ ```
44
+
45
+1. サービスを開始する。
46
+
47
+ ```
48
+ user@kdc0:~$ sudo systemctl restart krb5-kdc
49
+ user@kdc0:~$ sudo systemctl restart krb5-admin-server
50
+ user@kdc0:~$ sudo systemctl enable krb5-kdc
51
+ user@kdc0:~$ sudo systemctl enable krb5-admin-server
52
+ ```
53
+
54
+1. `user`ユーザーを追加する。
55
+
56
+ ```
57
+ user@kdc0:~$ sudo kadmin.local
58
+ Authenticating as principal root/[email protected] with password.
59
+ kadmin.local: addprinc user
60
+ No policy specified for [email protected]; defaulting to no policy
61
+ Enter password for principal "[email protected]":
62
+ Re-enter password for principal "[email protected]":
63
+ add_principal: Password read interrupted while reading password for "[email protected]".
64
+ kadmin.local: addprinc user
65
+ No policy specified for [email protected]; defaulting to no policy
66
+ Enter password for principal "[email protected]":
67
+ Re-enter password for principal "[email protected]":
68
+ Principal "[email protected]" created.
69
+ kadmin.local: exit
70
+ ```
71
+
72
+1. `krb-client0.example.com`用の`keytab`ファイルを生成する
73
+
74
+ ```
75
+ user@kdc0:~$ sudo kadmin.local
76
+ kadmin.local: addprinc -randkey host/krb-client0.example.com
77
+ kadmin.local: ktadd -k /tmp/krb-client0.keytab host/krb-client0.example.com
78
+ kadmin.local: quit
79
+ ```
80
+
81
+1. `keytab`ファイルを`krb-client0.example.com`へ転送する。
82
+
83
+ ```
84
+ user@kdc0:~$ scp /tmp/krb-client0.keytab krb-client0.example.com:/tmp/
85
+ ```
86
+
87
+## sshサーバ(`krb-client0`)のセットアップ
88
+
89
+1. 必要なパッケージをインストールする。
90
+
91
+ ```
92
+ user@krb-client0:~$ sudo apt update
93
+ user@krb-client0:~$ sudo apt install krb5-user
94
+ ```
95
+
96
+1. `/etc/krb5.keytab`に適切なパーミッションを与える。
97
+
98
+ ```
99
+ user@krb-client0:~$ sudo mv /tmp/krb-client0.keytab /etc/krb5.keytab
100
+ user@krb-client0:~$ sudo chown root:root /etc/krb5.keytab
101
+ user@krb-client0:~$ sudo chmod 600 /etc/krb5.keytab
102
+ ```
103
+
104
+1. `/etc/krb5.conf`を編集する。
105
+
106
+ ```
107
+ user@krb-client0:~$ sudo vim /etc/krb5.conf
108
+ ```
109
+
110
+ ```
111
+ [libdefaults]
112
+ default_realm = EXAMPLE.COM
113
+ dns_lookup_realm = false
114
+ dns_lookup_kdc = false
115
+
116
+ [realms]
117
+ EXAMPLE.COM = {
118
+ kdc = kdc0.example.com
119
+ admin_server = kdc0.example.com
120
+ }
121
+
122
+ [domain_realm]
123
+ .example.com = EXAMPLE.COM
124
+ example.com = EXAMPLE.COM
125
+ ```
126
+
127
+## sshクライアント(`krb-client1`)のセットアップ
128
+
129
+1. 必要なパッケージをインストールする。
130
+
131
+ ```
132
+ user@krb-client1:~$ sudo apt update
133
+ user@krb-client1:~$ sudo apt install krb5-user
134
+ ```
135
+
136
+1. `/etc/krb5.conf`を編集する。
137
+
138
+ ```
139
+ user@krb-client1:~$ sudo vim /etc/krb5.conf
140
+ ```
141
+
142
+ ```
143
+ [libdefaults]
144
+ default_realm = EXAMPLE.COM
145
+ dns_lookup_realm = false
146
+ dns_lookup_kdc = false
147
+
148
+ [realms]
149
+ EXAMPLE.COM = {
150
+ kdc = kdc0.example.com
151
+ admin_server = kdc0.example.com
152
+ }
153
+
154
+ [domain_realm]
155
+ .example.com = EXAMPLE.COM
156
+ example.com = EXAMPLE.COM
157
+ ```
158
+
159
+1. ssh接続をテストする。
160
+
161
+ ```
162
+ user@krb-client1:~$ ssh -o GSSAPIAuthentication=yes [email protected]
163
+ ```
... ...
\ No newline at end of file