LoginSignup
12
12

More than 5 years have passed since last update.

VirtualBox+CentOS6.5上でKerberosサーバを構築する

Posted at

Vagrantなどもありますが、今回は全てマニュアルで構築します。

構成

ツール バージョン
Virtual Box 4.3.4 r91027
CentOS 6.5 64bit minimal

Virtual Boxの設定

CentOS-6.5-x86_64-minimal.isoを以下から取得する
http://isoredirect.centos.org/centos/6/isos/x86_64/

Virtual Boxマネージャより、「新規」で新たな「Redhat64bit」インスタンスを作成する

今回は認証サーバなので、「ネットワーク」-「アダプター1」の設定を以下にしておく。

  • 「割り当て」-ブリッジアダプター
  • 「プロミスキャスモード」-全て許可

また、ストレージとする仮想ディスクは多目にしておくこと。(追加はめんどくさい)

私は60-100GB程度でいつも作成しています。

コントローラIDEに上記のURLから取得した.isoファイルをマウントしておく。

以上設定後、インスタンスを起動すると、インストール画面になる。

インストールは一般的なCentOSのインストールと同一なので割愛。

「ネットワーク名」を決定するとき、左下のネットワーク設定からeth0のauto connectをONにしておくと後がラク。

Cent OSの初期設定

自動でネットワークに接続できるにする。

参考例:

#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=a7a64eb7-efc4-4db7-bcb4-c7f8a233ca9d
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
HWADDR=08:00:27:A1:66:B2
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

インストール時にauto connectをONにしていた場合は不要。

ファイアウォール無効化。企業内LAN内ではない場合はあとで必ず再設定すること

# /etc/rc.d/init.d/iptables stop
chkconfig iptables off
chkconfig --list iptables 

SELinuxも完全無効化。企業内LAN内ではない場合はあとで必ず再設定すること

vi /etc/sysconfig/selinux

rebootする

これでsshからログインできるようになったはず。

proxy内で操作する場合はyumのproxyを通しておく
vim /etc/yum.conf
以下を追記

proxy=http://proxy.server.co.jp:8080
proxy_username=YOUR_ID
proxy_password=YOUR_PASSWORD

全体的に一度アップデートをしておくこと。

yum upudate -y

あとは適宜vimとか入れておくとはかどる

自分の場合はyum install vim gitでgithub上の.vimrcln -sしておく

Kerberosサーバを導入する

必要なパッケージをインストールする。

yum -y install krb5-server krb5-workstation words portreserve

後はほぼ以下のURLの通りに実行する。

Kerberos を使ってみる (RHEL/CentOS/Ubuntu編)
http://masahir0y.blogspot.jp/2012/12/kerberos-v5.html

3つの設定ファイルの設定を行う。

[root@server ~]# cat /var/kerberos/krb5kdc/kadm5.acl
#*/admin@EXAMPLE.COM    *
*/admin@SERVER.LOCAL    *
[root@server ~]# cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
# EXAMPLE.COM = {
  SERVER.LOCAL = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

[root@server ~]# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = SERVER.LOCAL
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }
 SERVER.LOCAL = {
     kdc = kerberos.server.local
     admin_server = kerberos.server.local
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
 .server.local = SERVER.LOCAL
 server.local = SERVER.LOCAL

次のコマンドでデータベースを作成する。

このコマンドはかなり時間がかかるので、動作がとまったように見えても、あわてずに待つこと。

kdb5_util create -s

パスワードを設定し、終了したら、データベースに必要情報を設定していく。

[root@server ~]# kadmin.local
Authenticating as principal root/admin@SERVER.LOCAL with password.
kadmin.local:  addprinc root/admin
WARNING: no policy specified for root/admin@SERVER.LOCAL; defaulting to no policy
Enter password for principal "root/admin@SERVER.LOCAL":
Re-enter password for principal "root/admin@SERVER.LOCAL":
Principal "root/admin@SERVER.LOCAL" created.
kadmin.local:  addprinc user01
WARNING: no policy specified for user01@SERVER.LOCAL; defaulting to no policy
Enter password for principal "user01@SERVER.LOCAL":
Re-enter password for principal "user01@SERVER.LOCAL":
Principal "user01@SERVER.LOCAL" created.
kadmin.local:  listp
listpols    listprincs
kadmin.local:  listp
listpols    listprincs
kadmin.local:  listprincs
K/M@SERVER.LOCAL
krbtgt/SERVER.LOCAL@SERVER.LOCAL
root/admin@SERVER.LOCAL
user01@SERVER.LOCAL
kadmin.local:  addprinc -randkey kadmin/admin
WARNING: no policy specified for kadmin/admin@SERVER.LOCAL; defaulting to no policy
Principal "kadmin/admin@SERVER.LOCAL" created.
kadmin.local:  addprinc -randkey kadmin/changepw
WARNING: no policy specified for kadmin/changepw@SERVER.LOCAL; defaulting to no policy
Principal "kadmin/changepw@SERVER.LOCAL" created.
kadmin.local:  exit

クライアント側の設定

基本的には/etc/krb5.conf/etc/hostsにサーバの情報が記載されていればOK

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = SYSLOG:INFO:LOCAL5
 admin_server = SYSLOG:INFO:LOCAL5

[libdefaults]
 #default_realm = EXAMPLE.COM
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 SERVER.LOCAL = {
  kdc = kerberos.server.local
  admin_server = kerberos.server.local
  default_domain = server.local
  kdc = kerberos
}
[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
***.***.***.*** kerberos.server.local kerberos

実行してみる。

# kinit user01@SERVER.LOCAL
Password for user01@SERVER.LOCAL:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: user01@SERVER.LOCAL

Valid starting     Expires            Service principal
03/10/14 16:18:23  03/11/14 16:17:27  krbtgt/SERVER.LOCAL@SERVER.LOCAL
        renew until 03/10/14 16:18:23

参考

今回は以下のページを参考にさせていただきました。

Kerberos を使ってみる (RHEL/CentOS/Ubuntu編)
http://masahir0y.blogspot.jp/2012/12/kerberos-v5.html

KDCサーバを作る(centos6)

http://web.chaperone.jp/w/index.php?Kerberos%2F%A5%B5%A1%BC%A5%D0

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12