203研究室:サーバ管理ノート

サマースクールで教えてもらったサーバ管理の自分用ノートです。Vine Linux 3.2です。

第1章 LDAP

1.1 Berkley DB

Berkley DBの入手

http://www.oracle.com/からdb-4.5.20.tar.gzを入手する。ここでは/rootに保存することにする。

Berkley DBのインストール

$ cd
$ tar zxvf db-4.5.20.tar.gz
$ cd db-4.5.20/build_unix
$ ../dist/configure --prefix=/usr/local
$ make
$ make install
$ ldconfig /usr/local/lib

1.2 OpenLDAP

OpenLDAPの入手

http://www.openldap.org/からopenldap-2.3.35.tgzを入手する。ここでは/rootに保存することにする。

OpenLDAPのインストール

$ cd
$ tar zxvf openldap-2.3.35.tgz
$ cd openldap-2.3.35
$ ./configure
$ make
$ make install
$ ldconfig /usr/local/lib

1.3 nss_ldap

nss_ldapの入手

http://www.padl.com/からnss_ldap.tgzを入手する。ここでは/rootに保存することにする。

nss_ldapのインストール

$ cd
$ tar zxvf nss_ldap.tgz
$ cd nss_ldap-255
$ ./configure --with-ldap-dir=/usr/local
$ make
$ make install

1.4 pam_ldap

pam_ldapの入手

http://www.padl.com/からpam_ldap.tgzを入手する。ここでは/rootに保存することにする。

pam_ldapのインストール

$ apt-get update
$ apt-get install pam-devel
$ cd
$ tar zxvf pam_ldap.tgz
$ cd pam_ldap-184
$ ./configure --with-ldap-dir=/usr/local
$ make
$ make install
$ cp ldap.conf /etc

1.5 slapdの起動

暗号化パスワードの生成

$ slappasswd -h '{MD5}'
newpassword:
Re-enter new password
{MD5}abcdefghijklmnopqrstuv==

準備

$ cd /usr/local/etc/openldap
$ vi slapd.conf

ここで5行目付近で以下のように3行追加する。

include   /usr/local/etc/openldap/schema/core.schema
include   /usr/local/etc/openldap/schema/cosine.schema          # add
include   /usr/local/etc/openldap/schema/inetorgperson.schema   # add
include   /usr/local/etc/openldap/schema/nis.schema             # add

さらに60行目付近を以下のように書き換える。

suffix   "dc=math,dc=wakhok"
rootdn   "cn=admin,dc=math,dc=wakhok"

rootpw   {MD5}abcdefghijklmnopqrstuv==

index    objectClass,uid,uidNumber,gidNumber,memberUid   eq
index    cn,mail,surname,givenname                       eq,subinitial

これを上書き保存する。そして、データベースの設定ファイルをコピーする。

$ cd /usr/local/etc/openldap
$ cp DB_CONFIG.example /usr/local/var/openldap-data/DB_CONFIG

初期データ

$ cd
$ vi base.ldif

として以下のファイルを作成する。

dn: dc=math,dc=wakhok
objectClass: top
objectClass: domain
dc: math

dn: ou=People,dc=math,dc=wakhok
objectClass: top
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=math,dc=wakhok
objectClass: top
objectClass: organizationalUnit
ou: Group

これを保存する。そして、この初期データをslappaddで追加する。

$ /usr/local/sbin/slapadd < base.ldif

起動

$ /usr/local/libexec/slapd

第2章 ユーザ登録

2.1 ユーザ登録とグループ登録

登録ユーザの基本情報

以下ではttとakの二人のユーザを登録することにする。それぞれのユーザの基本情報を以下のように仮定する。

ユーザ名ttak
ユーザID10001001
プライマリグループseminarseminar
プライマリグループID10001000
セカンダリグループなしlaboratory
セカンダリグループIDなし1001
ホームディレクトリ/home/tt/home/ak
起動シェル/bin/bash/bin/bash

ユーザデータ

$ cd
$ vi tt.ldif

として以下のファイル(ユーザtt用データ)を作成する。

dn: uid=tt,ou=People,dc=math,dc=wakhok
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uid: tt
cn: Tt Kiba
sn: Kiba
uidNumber: 1000
gidNumber: 1000
loginShell: /bin/bash
homeDirectory: /home/tt
userPassword: {MD5}abcdefghijklmnopqrstuv==
gecos: Tt
mail: tt@math.wakhok

これを保存する。さらに

$ cd
$ vi ak.ldif

として以下のファイル(ユーザak用データ)を作成する。

dn: uid=ak,ou=People,dc=math,dc=wakhok
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: extensibleObject
uid: ak
cn: Ak Kiba
sn: Kiba
uidNumber: 1001
gidNumber: 1000
loginShell: /bin/bash
homeDirectory: /home/ak
userPassword: {MD5}abcdefghijklmnopqrstuv==
gecos: Ak
mail: ak@math.wakhok

これを保存する。

ユーザ登録

ユーザtt用データを登録する。

$ cd
$ /usr/local/bin/ldapadd -D 'cn=admin,dc=math,dc=wakhok' -W < tt.ldif
Enter LDAP Password:
adding new entry "uid=tt,ou=People,dc=math,dc=wakhok"

続けてユーザak用データを登録する。

$ cd
$ /usr/local/bin/ldapadd -D 'cn=admin,dc=math,dc=wakhok' -W < ak.ldif
Enter LDAP Password:
adding new entry "uid=ak,ou=People,dc=math,dc=wakhok"

グループデータ

$ cd
$ vi seminar.ldif

として以下のファイル(グループseminar用データ)を作成する。

dn: cn=seminar,ou=Group,dc=math,dc=wakhok
objectClass: top
objectClass: posixGroup
cn: seminar
gidNumber: 1000

これを保存する。さらに

$ cd
$ vi laboratory.ldif

として以下のファイル(グループlaboratory用データ)を作成する。

dn: cn=laboratory,ou=Group,dc=math,dc=wakhok
objectClass: top
objectClass: posixGroup
cn: laboratory
gidNumber: 1001
memberUid: ak

これを保存する。

グループ登録

グループseminar用データを登録する。

$ cd
$ /usr/local/bin/ldapadd -D 'cn=admin,dc=math,dc=wakhok' -W < seminar.ldif
Enter LDAP Password:
adding new entry "cn=seminar,ou=Group,dc=math,dc=wakhok"

続けてグループlaboratory用データを登録する。

$ cd
$ /usr/local/bin/ldapadd -D 'cn=admin,dc=math,dc=wakhok' -W < laboratory.ldif
Enter LDAP Password:
adding new entry "cn=laboratory,ou=Group,dc=math,dc=wakhok"

2.2 LDAPによるユーザ認証

ldap.conf

$ cd /etc
$ vi ldap.conf

として18行目付近を次のように書き換える。

base dc=math,dc=wakhok

さらに43行目付近を次のように書き換える(コメントアウトして書き換える)。

rootbinddn cn=admin,dc=math,dc=wakhok

さらに162行目付近を次のように書き換える(コメントアウトして書き換える)。

nss_base_passwd   ou=People,dc=math,dc=wakhok?one
nss_base_shadow   ou=People,dc=math,dc=wakhok?one
nss_base_group    ou=Group,dc=math,dc=wakhok?one

これを上書き保存する。

ldap.secret

ldap.secretにrootdnのパスワードを書き、パーミッションを変更する。

$ echo 'Summer' > /etc/ldap.secret
$ chmod 600 /etc/ldap.secret

authconfig

$ authconfig

ユーザ情報              認証
[ ] キャッシュ情報      [*] MD5パスワードを使用
[ ] Hesiodを使用        [*] シャドウパスワードを使用
[*] LDAPを使用          [ ] LDAP認証を使用
[ ] NISを使用           [ ] Kerberos5を使用
[ ] Winbindの使用       [ ] SMB認証を使用
                        [ ] Winbindを使用

取り消し                次
--------------------------------------------------
LDAP 設定
[ ] TLS を使用
サーバ: 127.0.0.1
ベースDN: dc=math,dc=wakhok

戻る                  OK

LDAPサービスの登録

$ cd /etc/init.d
$ vi ldap

として以下のファイルを作成する。

#!/bin/bash

. /etc/init.d/functions

slapd=/usr/local/libexec/slapd
[ -x ${slapd} ] || exit 0

RETVAL=0

function start()
 {
        # Start daemons.
	prog=`basename ${slapd}`
        echo -n $"Starting $prog: "
	daemon ${slapd} -h "ldap:///" $OPTIONS $SLAPD_OPTIONS
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ldap
	return $RETVAL
 }

function stop()
 {
        # Stop daemons.
	prog=`basename ${slapd}`
	echo -n $"Stopping $prog: "
	killproc ${slapd}
	RETVAL=$?
	echo
		[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ldap /usr/local/var/run/slapd.args
	return $RETVAL
 }

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status ${slapd}
	;;
    restart)
	stop
	start
	;;
    condrestart)
        if [ -f /var/lock/subsys/ldap ] ; then
            stop
            start
        fi
	;;
    *)
	echo $"Usage: $0 {start|stop|restart|status|condrestart}"
	RETVAL=1
esac

exit $RETVAL

これを保存する。そして、起動時にLDAPサービスが開始されるようにする。

$ chmod +x /etc/init.d/ldap
$ chkconfig --level 35 ldap on

2.3 ホームディレクトリ

ホームディレクトリの作成

$ cd /home
$ mkdir tt
$ mkdir ak

スケルトンのコピー

$ cd /home
$ cp -fr /etc/skel/.??* tt
$ cp -fr /etc/skel/* tt
$ cp -fr /etc/skel/.??* ak
$ cp -fr /etc/skel/* ak

属性の変更

$ cd /home
$ chown tt tt
$ chown ak ak
$ chgrp seminar tt
$ chgrp seminar ak

2.4 LDAP認証の確認

authconfig

$ authconfig

ユーザ情報              認証
[ ] キャッシュ情報      [*] MD5パスワードを使用
[ ] Hesiodを使用        [*] シャドウパスワードを使用
[*] LDAPを使用          [*] LDAP認証を使用
[ ] NISを使用           [ ] Kerberos5を使用
[ ] Winbindの使用       [ ] SMB認証を使用
                        [ ] Winbindを使用

取り消し                次
--------------------------------------------------
LDAP 設定
[ ] TLS を使用
サーバ: 127.0.0.1
ベースDN: dc=math,dc=wakhok

戻る                  OK

ssh

$ cd /etc/ssh
$ vi sshd_config

として81行目付近を次のように書き換える(コメントアウトして書き換える)。

UsePam yes

これを上書き保存する。そして、SSHを再起動する。

$ service sshd restart

ログイン

LDAP認証が有効になったので登録したユーザでログインしてみる。

$ ssh -l tt localhost
Password:
Last login: Sun Apr 1 9:00:00 2007 from localhost
[tt@localhost tt]$

第3章 Samba

3.1 Samba

Sambaの入手

http://www.samba.org/からsamba-3.0.24.tar.gzを入手する。ここでは/rootに保存することにする。

Sambaのインストール

$ cd
$ tar zxvf samba-3.0.24.tar.gz
$ cd samba-3.0.24/source
$ ./configure --with-libiconv=/usr
$ make
$ make install

3.2 Sambaの起動

smb.confのコピー

$ cd
$ cd samba-3.0.24/examples
$ cp smb.conf.default /usr/local/samba/lib/smb.conf

smb.confの設定

$ cd /usr/local/samba/lib
$ vi smb.conf

として26行目付近を次のように書き換える。

workgroup = WORKGROUP

これを上書き保存する。

起動

$ /usr/local/samba/sbin/smbd -D

3.4 ユーザ登録

ユーザ登録

ユーザttの登録をする。

$ /usr/local/samba/bin/pdbedit -a tt
new password:
retype new password:

さらにユーザakの登録をする。

$ /usr/local/samba/bin/pdbedit -a ak
new password:
retype new password:

ログイン

LDAP認証が有効になったので登録したユーザでログインしてみる。

$ /usr/local/samba/bin/smbclient -L localhost -U tt
Password:

第4章 Apache

4.1 Apache

Apacheの入手

http://www.apache.jp/からhttpd-2.2.4.tar.gzを入手する。ここでは/rootに保存することにする。

Apacheのインストール

$ cd
$ tar zxvf httpd-2.2.4.tar.gz
$ cd httpd-2.2.4
$ ./configure
$ make
$ make install

4.2 Apacheの起動

confファイルの設定

$ cd /usr/local/apache2/conf
$ vi httpd.conf

ここで64行目付近を以下のように修正する。

User apache
Group apache

さらに85行目付近を以下のように修正する。

ServerAdmin tt@math.wakhok
\end{verbatim}
\end{quote}

これを上書き保存する。

Apache再起動

$ ps -aef | grep httpd
root     1220     1     0
$ kill 1220
$ /usr/local/apache2/bin/httpd

4.3 Webページの作成と閲覧

Webページの作成

$ cd /usr/local/apache2/htdocs
$ vi index.html

として以下のファイルを作成する。

<?xml version="1.0" encoding="EUC-JP"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>Laboratory 203</title>
</head>
<body>
<h1>Laboratory 203</h1>
<p>tt@math.wakhok</p>
</body>
</html>

Webページの閲覧

ブラウザのアドレスバーに

http://localhost/

と入力する。次のように表示される。

Laboratory 203
tt@math.wakhok