2007年4月 6日 (金)

メーリングリストの引っ越し

またもや引っ越しするような予定になってしまいました。そして今回は落ち着くまでかなり時間がかかりそうです。

自宅でホストしているプライベートメールのドメインがしばらく利用不可能なのは問題ないのですが、メーリングリスト(以下 ML)のドメインが使えなくなるのは問題アリです。利用者の皆さんと SLA を取り交わしているわけではないので、そんなに深刻になる必要もないのですが、迷惑をおかけするのはいたたまれません……というわけで、友人宅のメールサーバーにドメインごと引っ越しすることにしました。

自宅サーバーでは fml を使っており、移行は以下のような手順ですすめました。

(1) 引っ越し先に fml をセットアップ
専用の UID と GID を用意してもらって、そのアカウント用に fml をセットアップしてもらいます。

(2) 引っ越し先に ML を作成
こちらと同じメーリングリストを作ってもらいます。サブジェクトのスタイルとか一部の設定も、現在のものにあわせておきます。もちろん、メールサーバーの設定も変更して、ML 宛のメールが正しく fml に処理されるように設定する必要があります。メールドメインの追加もお忘れなく。

(3) 各 ML をアーカイブ
データ以降のために、各 ML の seq, actives, members, spool をアーカイブします。もちろんこの作業を実施中に ML 宛のメールが来ると面倒なので、サービス停止の告知は予め済ましておく必要があります。

(4) アーカイブを引っ越し先で展開
ファイルおよびディレクトリの owner は (1) で用意したものに変更することを忘れないよーに。

(5) MX の書き換え
DNS レコードを書き変えて引っ越し先のメールサーバーを参照するように設定します。最近は TTL を低めに設定していることもあって、この変更が世界中に伝播するのにそれほど時間はかからないはずなのですが、年のため、古いメールサーバー側の設定を変更して ML 宛のメールが届いたら引っ越し先に転送するようにしておきます。

おっと重要な前提をひとつ書き忘れていました。ドメインのネームサーバーもどこかに引っ越ししておく必要があります。こちらはレジストラが提供している無料サービスを使いました。比較的自由にレコードを設定できるだけでなく、セカンダリのネームサーバーとかも自動的に用意してくれるので手間いらずです。初めて自宅サーバーを構築した時のことを考えると、なかなか便利な世の中になりましたネ、ほんと。

| | コメント (0) | トラックバック (0)

2007年1月31日 (水)

Anti-Anti-Spam (2)

sumikawa 先生にお手伝いいただいて、SMTP HELO の修正結果が問題ないかテストしました。まずは「〇」という結果。逆引きのホスト名がちょっと SPAMmer らしく見えてしまうという課題に関しては、ISP が提供しているオプションサービスで対応できそうです。

いろいろお世話になりました(ぺこり)>sumikawa 先生

| | コメント (0) | トラックバック (0)

2007年1月13日 (土)

Anti-Anti-Spam (1)

って、別に SPAM を撒き散らしているわけではありません。

最近、とある有名ドメイン宛のメールが届かないことに気付きました。MTA が SMTP で接続した時に接続が切られているようです。どうも SPAM 対策に引っかかっている疑いが濃厚。

安全性の観点からここで詳しく書くことは控えておきますが、いろいろとリサーチして最終的には解決できました。しかし、もう少し保守的な SPAM 対策にしていただけないですかね、マッタク……というのが今回の感想。

Sender ID とかの設定が必要なのだろうか……と、ついでに調べた時に見つけたリソースをメモとして残しておきます。

せちがらい世の中ですのう。

| | コメント (2) | トラックバック (0)

2006年11月 4日 (土)

グローバル IP 再割り当て

大阪から東京に引越し、ということで、おうちサーバーも移転です。

私は FLET'S ADSL ユーザーです。でもってプロバイダは、固定のグローバル IP を割り当ててもらえる INTERLINKZOOT 接続サービスを利用しています。県をまたぐ移動ではサービスの再契約が必要とのことなので手続き後、以下の作業を実施しました。

  • ネームサーバーに登録している IP アドレスを書き換え
  • ドメインのネームサーバーの IP アドレス変更を申請
  • セカンダリのネームサーバーに登録しているプライマリサーバーの IP アドレスを変更

最後のやつは知り合いのネームサーバーにお願いしているのでつつい忘れがち。注意しませんと……

| | コメント (0) | トラックバック (0)

2006年7月 2日 (日)

メールの振り分け

かなり久々ですが、メールの振り分け処理の話など。

メール端末がひとつ増えました。メールの管理は IMAP4 サーバーで行っているので、端末がひとつふたつ増えてもそれほど読み書き自体はあんまり問題ありません。ただ、メッセージの振り分けルールはメイン端末の MUA で定義しているので、しばらくメイン端末にアクセスできない期間があると INBOX が大変なことになってしまいます。

そこで今回、サーバー側のメール振り分け機能を利用することにしました。自宅の IMAP4 サーバーに採用している cyrus-imapd では、RFC3028 で定義されているメッセージ振り分け言語であるところの SIEVE が実装されています。スクリプトを登録しておけばメール受信とともに振り分けをサーバー側で実行してくれます。

SIEVE のスクリプトはテキストエディタで作成して、sieveshell というツールでサーバーにアップロードします。

# sieveshell -a=ユーザー名 localhost
localhost connecting to localhost
Please enter your password: パスワード
> put スクリプト名
> activate スクリプト名
> quit

と、こんなカンジで put した後、activate すれば OK です。

サンプルスクリプトは面倒なのでここには載せませんが、RFC とか参照されてみてください。

| | コメント (0) | トラックバック (0)

2005年12月31日 (土)

システムのバックアップ

実はメールサーバーの移行はもう完了してしまっているのですが、作業量がなかなか多かったせいもあって、こちらに反映できていません。いずれ、時間を見てまとめていきたいと思っています。。

という前に、そろそろバックアップを真面目に考えておく必要があります。日々の差分をどうバックアップしていくか運用を考える必要があるのですが、まずは現在の静止イメージを取得しておく必要があります。まずはメンテナンスモードに入りましょう。

# init 1

で、おもむろに dump コマンドを使ってみます。

# dump -0 -f - /dev/hda1 | gzip > /mnt/backup/hda1.dump.gz

dump コマンドで /dev/hda1 の内容をダンプし、それを gzip で固めて /mnt/backup 下のファイルに出力しています。もちろんこのディレクトリにマウントされているファイルシステムは、/dev/hda1 以外のものです。USB の外付けディスクとかネットワーク上のファイルシステムとかでも問題ないです。

| | コメント (0) | トラックバック (0)

2005年12月19日 (月)

CA の作成

openssl を使って独自の証明書認証局 (CA) を作ってみます。

(1) CA 自己署名証明書の作成

まずは CA の秘密鍵を生成します。

  openssl genrsa -rand /var/log/messages -out ca.key 1024

この秘密鍵に対して証明書署名要求 (CSR) を作成します。

  openssl req -new -key ca.key -out ca.csr

DN を作成するための情報を入力するよう促されるので、適切な値を入力してください。

CSR に基づいて自己署名し、証明書を作成します。ここでは有効期限を 10 年(=365日)と指定しました。

  openssl x509 -req -days 3650 -in ca.csr -signkey ca.key \
    -out ca.crt

(2) 証明書の作成

作成した CA の証明書に基づいてサーバーの証明書を作成してみます。まずはサーバー証明書用の秘密鍵を作成します。

  openssl genrsa -rand /var/log/messages -out server.key 1024

この秘密鍵に基づいて CSR を作成します。

  openssl req -new -key server.key -out server.csr

CSR の情報に基づき、CA の秘密鍵を用いて署名し、証明書を発行しましょう。

  echo 01 > ca.srl
  openssl x509 -req -days 1095 -CA ../certs/ca.crt \
    -CAkey ./ca.key -in server.csr -out server.crt

ここでは有効期限を 3 年(=1095日)としています。

| | コメント (0) | トラックバック (0)

2005年12月18日 (日)

OpenLDAP を使おう (4)

そういえば長らく書こうと思って書けていなかった OpenLDAP のアカウント登録を簡単にまとめておきます。

(1) rootdn および rootpw の編集

まず、ディレクトリに管理者ユーザーを登録しましょう。そこで管理者ユーザーを登録するための仮の管理者ユーザーを設定してディレクトリに接続できるようにします。 /etc/ldap/slapd.conf に以下の行を追加してください。

    rootdn "管理者のDN"
    rootpw 管理者のパスワード

仮のものなのでパスワードの部分には平文のパスワードをそのまま書いてもいいですが、本来は slappasswd コマンドを使って作成した文字列を指定すべきでしょう。

    slappasswd
    New password:
← パスワードを入力
    Re-enter new password:
← 確認のためもう一度入力

設定できたら、openldap を再起動しておきましょう。

    /etc/init.d/slapd restart

(2) 管理者エントリーの作成

まず、登録するエントリーの情報を以下のように LDIF 形式のテキストファイルで作成します。

    dn: 作成する管理者のDN
    cn: 作成する管理者のDNのCNの部分
    description: コメント
    objectClass: organizationalRole
    objectClass: simpleSecurityObject
    userPassword: パスワード

パスハードに指定する文字列については先ほどのように slappasswd を用いて作成してください。ひととおり編集が終わったら、このファイルを ldapadd コマンドを用いてディレクトリに登録します。

    ldapadd -x -h localhost -D '仮の管理者のDN' -W < 作成したファイルのパス
    Enter LDAP Password:
← 仮の管理者のパスワードを入力
    adding new entry "登録されたDN"

管理者の作成が完了したら、/etc/ldap/slapd.conf から rootdn および rootpw の行をコメントアウトして、新たに設定した管理者で接続できるかどうか確認しておきましょう。

(3) POSIX アカウントの登録例

それではログインユーザーとして用いることのできる POSIX アカウントを登録してみましょう。登録情報を LDIF 形式のテキストファイルで作成して登録する手順は先ほどと同じです。

    uid: ユーザーID
    cn: ユーザー名
    uidNumber: ユーザーID番号
    gidNumber: グループID番号
    objectClass: shadowAccount 
    objectClass: posixAccount
    shadowMin: パスワードが変更可能になるまでの日数
    shadowMax: パスワードの変更を要求するまでの日数
    shadowWarning: パスワードを無効にするまでの警告日数
    shadowLastChange: パスワードの変更日付(1970/1/1よりの日数)
    loginShell: ログインシェル
    homeDirectory: ホームディレクトリ
    gecos: GECOSフィールド
    userPassword: ユーザーパスワード

ユーザーパスワードは先ほどと同じように slappasswd で作成してください。その他のフィールドの詳細は /etc/shadow や /etc/passwd に対応しています。作成した LDIF のファイルを ldapadd で登録するとこも先ほどと同じですが、接続に使う管理者の DN およびパスワードは先ほど作成した管理者のものを用いる必要があるので注意してください。

(4) POSIX グループの登録

グループも同様に登録できます。

    dn: グループのDN
    cn: グループ名
    userPassword: グループパスワード
    gidNumber: グループID番号
    memberUid: グループメンバーのユーザー名
    objectClass: posixGroup

| | コメント (0) | トラックバック (0)

2005年12月17日 (土)

メールサーバー移行計画 (2)

かなり間が空いてしまいましたが、今日は久々にメールサーバー移行の話です。

最近どうもメールサーバーの調子が悪い……というわけで、本腰を入れる必要がでてきたわけです。そんな私の今日の参考書は以下のとおり。

あれ、前と参考書が違うような。。という指摘は不要です。気づいてもいわないように(汗)Exim4 は仕組みがシンプルなので、マッチングルールを書けばいろいろな振り分けとかもストレートに設定できるのですが、いかんせんちょいとテストが面倒そう。対して Postfix は参考書を読んでわかったのですが、こちらはルールを記述するというよりパラメータの値を設定する、という感じでだいたいやりたいことが実現できそうなのです。

今日はとりあえずインストールだけしときましょう。まずは不要になる Exim4 をアンインストールしておきます。 Exim4 に関連する 4 個のパッケージがインストールされていますが、アンインストールは exim4-config を指定するだけで OK です。依存する残りのパッケージは自動的にアンインストールされます。

  apt-get remove --purge exim4-config

Postfix をインストールすると構成をどうするか聞いてきますが、とりあえずリターンキーを連打してデフォルトを受け入れておきましょう。設定ファイルは後で真面目に編集する予定です。

  apt-get install postfix

やはり debian は楽チンでよろしい。。次回から設定です。

| | コメント (0) | トラックバック (0)

2005年11月20日 (日)

BIND の移行:おまけ

移行のついでに BIND の設定を少しブラッシュアップ(というほど大層なことはでなはいです、はい)。割とよく知られている話として、BIND9 で逆引きできない場合、"lame server resolving ...." というエラーメッセージがログに残ります。

莫大な SPAM メールを送りつけられる昨今、「逆引きして名前がわかんないよぉ」、みたいなエラーをまじめに記録しているとログの意味がありません。これを前々からログから取り除こうと思っていたのです。

やり方は簡単で named.conf.local の中で以下ような記述を追加して、ログのカテゴリーの一部を記録しないように指定するだけです。

  logging {
          category lame-servers { null; };
  };

| | コメント (0) | トラックバック (0)

BIND9 の移行

メールサーバーを移行する前にネームサーバーも移行しておく必要があることに気づきました(とゆーか移行したつもりでいました)。ゾーン定義などは、ほぼそのまま持ってこれるので比較的楽な作業(のはず)です。

(1) BIND9 のインストール

  apt-get install bind9

(2) ゾーン定義ファイルの追加

ゾーン定義ファイルはそのまま持ってくるだけです。 定義している IP アドレスは変えなくていいの?って話はあるのですが、我が家のシンプルなネットワーク構成では変更不要なのです。グローバル IP アドレスをいくつも持っていたりするとまた事情は違ってくるのですが。

Sarge では BIND9 の設定ファイルは /etc/bind 以下に置くようになっています。ゾーン定義ファイルを /var/named 以下に配置するディストリビューションも多いのですが、Sarge は /var 以下にはキャッシュ情報しか保存しない構成になっています。

ゾーン定義を配置したら、/etc/bind/named.conf ファイルにゾーン定義の参照を追記します。ただし、Sarge では named.conf に直接定義せず、named.conf からインクルードされている named.conf.local の方に追記するのがお作法のようです。以下は named.conf.local の記述例です。

  include "/etc/bind/zones.rfc1918";

  zone "foo.com" {
          type master;
          file "/etc/bind/named.conf.foo.com";
  };

青字の部分にそれぞれ、ドメイン名(foo.com)とゾーン定義ファイル名(named.conf.foo.com)を指定する形になります。ゾーン定義そのものの定義例は以下のようになります。

  $TTL 1h
  ;
  @       IN      SOA     ns.foo.com. root.foo.com. (
          2005111901      ; Serial
          1h              ; Refresh after 1 hour
          1h              ; Retry after 1 hour
          1h              ; Expire after 1 hour
          1h )            ; Negative caching TTL of 1 hour
  ;
          IN      NS              ns.foo.com.
          IN      NS              ns2.foo.com.
          IN      MX      10      mail.foo.com.
  ;
          IN      A       192.168.1.1
  ns      IN      A       192.168.1.2
  ns2     IN      A       192.168.16.2
  mail    IN      A       192.168.1.3
  www     IN      A       192.168.1.4
  ftp     IN      CNAME   www
  ;

詳しい解説は BIND の解説書など見てくださいナ。

(3) BIND の再起動

設定ファイルを変更したので BIND を再起動しておきましょう。

  /etc/init.d/bind9 restart

設定ファイルを読み直すだけなら HUP シグナルを送るだけでも構いません。

  kill -HUP `pidof named`

(4) 動作確認

ちゃんと設定できているか確認しておきましょう。 dig コマンドで named に名前照会のリクエストを送信して結果が返ってくるか確認しておきます。

  dig @localhost foo.com

ちゃんと照会結果が返ってくるか、内容は正しいか確認しておきましょう。

| | コメント (0) | トラックバック (0)

2005年11月19日 (土)

JBoss のインストール

Java の準備ができたのでアプリケーションサーバなどインストールしてみることにします。今回は JBoss をインストールしてみましょう。

(1) JBoss のダウンロード

JBoss.com からダウンロードページからアーカイブをダウンロードしましょう。バージョンは何でもかまいませんが、私は今回故あって 3.2.7 をダウンロードします。

  jboss-3.2.7.zip

(2) アーカイブの展開

今回は潔くアーカイブをそのまま用いることにします。 インストールしたいディレクトリの下にアーカイブを解凍してください。私は /opt 以下にアーカイブすることにしてます。

  cd /opt
  jar xf jboss-3.2.7.zip

なお、ここではしれっと jar コマンドでアーカイブを展開していますが、もちろん、J2SE がインストールされて利用できる状態になっている必要があります。インストール方法の詳細についてはこちら

(3) 起動スクリプトの作成

JBoss の起動と停止は、サブディレクトリ bin に含まれている run.sh と shutdown.sh スクリプトによって行います。もちろん毎回手で起動してもいいのですが、他のサービスデーモンのように runlevel で自動的に起動をコントロールしたくなるものです。というわけで、起動スクリプトを書きましょう。

  • /etc/init.d 以下に起動スクリプトを作成する。
  • update-rc.d コマンドで runlevel にあわせて起動/停止するようにシンボリックリンクを更新。

スクリプトは start, stop, restart のうちのいずれかを引数にとり、その引数にあわせてデーモンを起動、停止、再起動の処理をするように記述します。ここでは jboss という名前のスクリプトを作成したと仮定して、シンボリックリンクを作成します。

  update-rc.d jboss defaults

これで /etc/rc?.d 以下に /etc/init.d/jboss に対する適切なシンボリックリンクが作成されます。

(注)ちなみに jboss を起動させるためには、環境変数 JAVA_HOME を設定しておく必要があるので、スクリプトを記述する際は注意しましょう。

| | コメント (0) | トラックバック (0)

J2SE SDK のインストール

そろそろ Tomcat なり JBoss なり Geronimo なりを動かしてみよう、と思い立ち、Java 2 Standard Edition SDK のインストールを試みます。

原理的には、http://java.sun.com からバイナリーをダウンロードしてきて、/opt あたりなりに展開すれば問題なく動作します。しかし、可能なものなら、Debian のパッケージの仕組みを使ってうまくやりたいものです。Sarge で用意されている java-package を用いることでこれが可能になります。

(1) java-package のインストール

  apt-get install java-package

(2) J2SE のダウンロード

http://java.sun.com から J2SE 5.0 をダウンロードしてきます。ダウンロードできるアーカイブは何種類かあるので、NetBeans を含まない bin 形式のものを選択します。ちなみに今回私がダウンロードしたものは以下のファイルです。

  jdk-1_5_0_05-linux-i586.bin

(3) パッケージの作成

fakeroot コマンドを用いて deb パッケージを作成します。

  fakeroot make-jpkg jdk-1_5_0_05-linux-i586.bin

バージョンの確認やライセンスの確認のためのプロンプトが出てくるので適当に答えてやれば以下のようなファイルが作成されます。

  sun-j2sdk1.5_1.5.0+update05_i386.deb

(4) パッケージのインストール

作成されたパッケージのファイルをインストールします。

  dpkg -i sun-j2sdk1.5_1.5.0+update05_i386.deb

(5) 環境変数の設定

Java を使うためには各種バイナリーの格納されたディレクトリを PATH に追加しておく必要があります。パッケージを作成してインストールすると、J2SE 1.5 は以下のディレクトリに格納されています。

  /usr/lib/j2sdk1.5-sun

基本的には上記のディレクトリの下にある bin ディレクトリを PATH に追加すればよいだけです。~/.bashrc なり /etc/profile なり、適切な初期化スクリプト内で以下のように環境変数の設定を追加します。

  JAVA_HOME=/usr/lib/j2sdk1.5-sun
  PATH=${JAVA_HOME}/bin:${PATH}

Java ベースのプログラムの起動スクリプトでは、環境変数 JAVA_HOME を参照することが多いので、必要なら シェル変数 JAVA_HOME もエクスポートしておくとよいでしょう。

| | コメント (0) | トラックバック (1)

メールサーバー移行計画 (1)

エラく久々な気がしますが、当然、サーバー管理作業をサボっていたわけではありません。が、メールサーバーの移行作業が停滞しているのは間違いありません(くっ)。

基本的に Sarge にインストールされている Exim をそのまま利用するつもりなのですが、複数の仮想ドメインを運用している関係で、デフォルトの設定だけではすんなりと片がつきません。その上、Cyrus-imapd の導入も検討しているので、いつまでたっても実作業を始めようという気力が沸いてこない、という問題もあります。

というわけで、未だ作業が始まる気配はないのです(主語は?)。あ、お茶を濁すわけではありませんが、購入した参考書など掲げておきましょう。

あ。fml も移行せねばならんのだった……

| | コメント (0) | トラックバック (0)

2005年9月24日 (土)

Apache を使おう

なんか随分と間が空いてしまいましたが、サーバーの構築作業そのものをサボっていたわけではありません (^^; OpenLDAP の話題もいろいろ整理して書きたいのですが、今回はちょっと寄り道して apache を使えるようにしてみたいと思います。

インストールはもうおなじみですが、apt-get でほぼ一発です。

# apt-get install apache2

これで利用完了です。

debian における apache の設定ファイル(/etc/apache2/apache2.conf)は、いくつかの部分に分割されています。

  • 共通部分
  • 動的モジュールの組み込み部分
  • 仮想ドメインの組み込み部分
  • ユーザー独自の設定を自由に記述する部分

上記の適切な場所を編集することで設定作業を行うことになります。
まずは仮想ホストを組み込んでみることにします。

(1) コンテンツの配置

デフォルトの文書は /var/www 以下に配置されているようです。管理ユーザーが誰かにもよるのですが、今回はこれにならって /var/www 以下に配置することにします。

(2) 仮想ドメインの設定ファイルの作成

/etc/apache2/sites-available 以下に、以下のような内容の仮想ホストの設定ファイルを作成します。ファイル名は、仮想ドメイン名と同じ、ということにしておきます。

  <VirtualHost *>

      ServerName 仮想ドメイン名
      ServerAdmin 管理者の連絡先メールアドレス
      DocumentRoot 文書ルートのディレクトリのパス

      <Directory 文書ルートのディレクトリのパス>
          ....
      </Directory>

      ....

  </VirtualHost>

設定ファイルそのものについては、世の中にあふれる Apache の参考書などごらんつかーさい。

(3) 仮想ホストの有効化

上記に作成したファイルを apache2.conf に組み込む必要があります。直接上記ファイルを編集する必要はなく、/etc/apache2/sites-enabled から /etc/apache2/sites-available 以下にシンボリックリンクを作成するだけです。

  ln -s /etc/apache2/sites-available/作成した設定ファイル \
      /etc/apache2/sites-enabled/適当なシンボリックリンク名

シンボリックリンク名は適当で構いませんが、ここでも仮想ドメイン名と同じにするとよいかもしれません。ちなみに apache2.conf の中を確認すればわかるのですが、このディレクトリ以下のファイルを以下のようにして include するようになっています。

  Include /etc/apache2/sites-enabled/[^.#]*

ナルホド。。

(4) apache の再起動

後は apache を再起動すれば、このサイトが外から見えるようになります。

  /etc/init.d/apache2 restart

available に仮想ホストを作成し、enabled でそれを有効化するというパターンは、複数サイトをメンテナンスしている立場的には非常にわかりやすくていいですな。

いずれ、Tomcat も入れてみることにしましょう。

| | コメント (0) | トラックバック (1)

2005年9月 8日 (木)

参考書買って見ました

なんだかんだいいつつ、参考書、買ってみました。

立ち読みレビューでは(おい)若干酷評気味でしたが、買ってじっくり読んでみると一応いろいろと気の利いた項目はありました。

apache2 インストールしてみようかと思って早速調べてみたのですが、apache を管理したことのある人間にとっては「ふんふん」と思える情報がよくまとまっています。ただ、apache の管理自体が一冊の本くらいになる話なので、あくまで触りだけです。そういう観点では、入り口として機能するつくりになっていればいいのカモ?とかちょっと思ってしまいました。

| | コメント (0) | トラックバック (0)

2005年9月 5日 (月)

OpenLDAP を使おう (3)

さて、今回は PAM 認証で LDAP を用いるように設定してみます。 まずは LDAP 用の PAM モジュールをインストールしましょう。

# apt-get install libpam-ldap

設定作業の概要は以下のようになります。

  • pam の設定ファイルを修正して LDAP モジュールも利用するようにする。
  • LDAP モジュールが正しく LDAP サーバーを参照できるようにする。

pam の設定ファイルは /etc/pam.d 以下にあります。このディレクトリには、アプリケーション(サービス)毎に設定ファイルが保存されており、各アプリケーションで pam の利用方法をカスタマイズできるようになっています。ただし、特に理由がない限り、基本的にはどのアプリケーションでも同じ認証の仕組みを利用したいものですよね。そこで sarge では、共通の設定部分を common で始まる設定ファイルに抜き出しています。今回はこの共通のファイルを以下のように変更してみます。

(1) /etc/pam.d/common-auth

auth    sufficient      pam_ldap.so
auth    required        pam_unix.so nullok_secure use_first_pass

(2) /etc/pam.d/common-account

account sufficient      pam_ldap.so
account required        pam_unix.so

(3) /etc/pam.d/common-session

session sufficient      pam_ldap.so
session required        pam_unix.so

(4) /etc/pam.d/common-password

password   sufficient pam_ldap.so
password   required   pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass

青字が追加した箇所です。意味に関しては下記などが参考になるかと思います。

LDAP モジュールが正しく LDAP サーバーを参照できるようにするには /etc/pam_ldap.conf を設定する必要があります。

# The distinguished name of the search base.
base dc=
foo,dc=bar

nss_base_passwd ou=xxx,dc=foo,dc=bar?one
nss_base_shadow ou=xxx,dc=foo,dc=bar?one
nss_base_group  ou=xxx,dc=foo,dc=bar?one

前回設定した libnss-ldap.conf とほぼ同じ設定内容になっていますが、設定ファイルの目的から考えると当然といえば当然ですね。

これで設定はほぼ完了です。後は、アカウント情報を実際に LDAP のディレクトリに格納する作業だけですが、こちらは次回に。

| | コメント (0) | トラックバック (0)

2005年8月31日 (水)

OpenLDAP を使おう (2)

OpenLDAP をセットアップできたので、これをつかって認証関係を一括管理したいと思います。PAM をセットアップして認証時に LDAP を参照するようにするのですが、その前に、ユーザー名やグループ名のルックアップで LDAP を参照するようにしておきましょう。

まずはネームサービスから LDAP を利用するためのモジュールをインストールします。

# apt-get install libnss-ldap

次は /etc/nsswitch.conf を編集して、ネームサービスが LDAP を参照するように設定します。

passwd: compat ldap
group:  compat ldap
shadow: compat ldap

これで、従来からのファイル参照の手段に加えて、LDAP も参照するようになります。この参照のために先ほどインストールした libnss-ldap のモジュールが利用されるわけです。

libnss-ldap が LDAP サーバーに接続するための各種設定は /etc/libnss-ldap.conf にて行います。最低限、以下の情報を設定すればよいようです。

# The distinguished name of the search base.
base dc=foo,dc=bar

nss_base_passwd ou=xxx,dc=foo,dc=bar?one
nss_base_shadow ou=xxx,dc=foo,dc=bar?one
nss_base_group  ou=xxx,dc=foo,dc=bar?one

base はディレクトリの BASE DN を指定し、nss_base_XXX は、XXX を検索するためのベースになります。例えば上記の設定でユーザーichiroのエントリーを作成する場合は、そのDNをuid=ichiro,ou=xxx,dc=foo,dc=barとする必要があります。実際にどういう情報を格納するかにはついては、また次回あたりでメモってみたいと思います。

(注)ちなみにネームキャッシュデーモンを使わない場合、/etc/libnsss-ldap.conf は通常のユーザーから読めるようにパーミッションを設定しておく必要があります。

| | コメント (0) | トラックバック (0)

2005年8月25日 (木)

OpenLDAP を使おう (1)

そういうわけで今回こそはようやく OpenLDAP の巻。ひととおり参考書に目をとおしての挑戦であります。

挑戦といっても OpenLDAP の導入自体はそれほど難しくありません。Debian ですから、apt で簡単にインストールできます。

# apt-get install ldap-utils
# apt-get install slapd

パッケージ slapd をインストールすると、設定ユーティリティが立ち上がるので、以下のような基本情報を入力すれば、最低限の設定は完了です。

DNS Domain Name: ドメイン名
Name of your organization: 組織名
Admin password:  管理者パスワード
Allow LDAPv2 Protocol: No

例の如く例によって、青字の部分は実際の設定値で読み替えてみてくださいナ。ちなみに管理者の DN は、"cn=admin, dc=..., ...., dc=..." という値に設定されますので要注意。

slapcat あたりで最低限のエントリーが記録されていることを確認したら、LDAP ブラウザでエントリーを編集してみましょう。作業している端末は Windows なので、今回は Coral Directory LDAP Browser を利用してみました。それなりに高機能なので、メンテナンスはこれひとつでできそうですが、UI に幾分クセがあるのでそのあたりが気になる人はちょっと無理かも知れません。

起動スクリプトほかもインストールされているので、OpenLDAP サーバーを動かすこと自体は非常に簡単です。さて、これで以下に挑戦してみたいと思います。

  • アドレス帳の統合
  • ユーザー認証の統合

詳細は次回以降で~♪

| | コメント (0) | トラックバック (0)

2005年8月23日 (火)

プロキシーサーバーの導入

最初の目標はディレクトリーサーバーの導入であります。などと、書き出しておきながら、今回はいきなり Squid のインストールの話です。でもって、参考にしたのはこちら。

本来はソースを入手してコンパイル……という手順ですが、せっかく debian 使ってるのですから、aptでさくっとインストールしてみましょう。

# apt-get install squid

はい、完了。簡単すぎ。設定ファイルであるところの /etc/squid.conf もほぼデフォルト値のまま利用できるので、ほとんど手をいれる必要がありません。唯一の変更点はセキュリティまわりの設定です。私はローカルネット上のマシンからも接続するので、そちらからの接続も許可するように ACL およびポリシーを追加しておく必要があります。

acl localnet src XXX.XXX.XXX.XXX/YYY.YYY.YYY.YYY
http_access allow localnet

あとは、ホスト名も指定しておきましょう。

青字のところがそれぞれ、ネットワークアドレスおよびサブネットマスクになります。起動スクリプトも /etc/init.d の下に作成されているので、これを使ってリスタートしてやれば作業は完了です。

/etc/init.d/squid restart

《追記@2006/01/6》 ホスト名も指定しておくと機嫌よいようです。

visible_hostname ホスト名

| | コメント (1) | トラックバック (0)

2005年8月21日 (日)

参考書

本屋で発見した参考書。

さらっと中身を確認してみる。うーん、もうちょっと内容絞ってほしかったなぁ。tDiary をインストールするとかそーいう話もいいんですけれど。そもそも、Debian 固有の話がどれくらいあるのか?って話からすると辞典にするにはいろいろ水増しとゆーか、その、ネタだしが苦しいのか。

あ、でも、逆引き本を書いた経験からすると、項目の選定ってなかなか難しいんですよね。「これはいるだろう」っていうのと「うーん、これはみんな知ってるよなぁ」っていう線引き。あるいは、「俺的には書きたいけど」っていうのと「あまりにマニアックすぎるか」っていう線引き。いろいろあります。

| | コメント (0) | トラックバック (1)

2005年8月17日 (水)

メールサーバーに悩む

メールサーバーは Postfix に決まりか……と思いきや、Debian 標準の Exim でももしかしてイケるのでは?と、思い当たる。SMTP AUTH が使えてなおかつ Virtual Domain を管理できる、んでもって fml とも相性がいい、そーいう人を探しているんですよ、ええ。

とりあえず Exim のドキュメントにあたってみるか。。

| | コメント (2) | トラックバック (0)

2005年8月16日 (火)

2.6 カーネルのインストール

Sarge をインストールすると、デフォルトでバージョン 2.4 ベースのカーネルが利用されるようです。もうそろそろ 2.6 ベースのカーネルでも大丈夫そうなので、インストールしてみましょう。

# apt-get install kernel-image-2.6-686

これで /boot に vmlinuz および initrd ほか、必要なファイルがインストールされます。もちろん grub のメニュー設定も自動的に書き換えてくれます。デフォルトでこちらのカーネルになるので、その点だけ注意です。しばらく動かして問題ないことを確認したら、2.4 ベースのカーネルはアンインストールすることにしましょう。いずれ。

| | コメント (3) | トラックバック (0)

2005年8月14日 (日)

ネットワークの設定

インストールが完了したのでこれからいろいろと設定作業をすすめるわけですが、別の端末から接続して作業できると非常に便利です。

DHCP が有効なネットワークに接続してインストール作業すると、デフォルトで DHCP を利用して IP アドレスを取得するような設定になっています。これはこれで便利なのですが、サーバー用途として使う場合は、固定 IP を割り当てておくほうが何かと便利です。

/etc/network/interfaces を書き換えて固定 IP を割り振るようにしてみます。

# The primary network interface
auto eth0
iface eth0 inet static
        address XXX.XXX.XXX.XXX
        netmask XXX.XXX.XXX.XXX
        network XXX.XXX.XXX.XXX
        broadcast XXX.XXX.XXX.XXX
        gateway XXX.XXX.XXX.XXX

青字のところが変更した箇所です。XXX.XXX.XXX.XXX の箇所が個別のネットワークにあわせて設定するところなので、参考される方は読み替えてくださいね。書き換えたら、インターフェースを立ち上げなおしておきます。

# ifdown eth0 ↓
# ifup eth0 ↓

これでネットワーク上の端末から SSH で接続するのもやりやすくなりました。ちなみに SSH サーバーはデフォルトで動くようになっているようです。

| | コメント (0) | トラックバック (0)

Debian をインストールするぞ (2)

というわけで(?)ようやく開始。

作成した DVD イメージを使ってインストールしてみましょう。DVD イメージ自体は 2 枚あるのですが、基本インストールで使うのは最初の一枚だけです。

他の多くのディストロと同じく、さまざまなパッケージをインストールして使えるようになっています。今回はサーバー用途ということもあるので最小限のパッケージをインストールした上で、必要なソフトウェアは後で追加インストールするか、もしくは自分でコンパイルしてインストールすることにました。

以下、インストール作業の流れです。

(1) 言語の選択 → 日本語
(2) キーボード配置の選択 → 日本 (106 キー)
(3) ホスト名の設定 → 今回使用するホスト名を
(4) ドメイン名の設定 → 我が家のドメイン名を
(5) ディスクのパーティショニング - ディスク全体を初期化してひとつのパーティションに
(6) 基本パッケージのインストール
(7) GRUB ブートローダーのインストール

ここで一度再起動 ~ CD-ROM からのブートしないように注意!

(8) 時間帯の設定 - ハードウェアクロックは GMT にセットしてタイムゾーンは JST に
(9) root パスワードの設定 → 推測されにくいものを
(10) 初期ユーザーの設定 → こちらの管理もしっかりと
(11) APT の初期設定 - 今回は使用しない 2 枚目の DVD-ROM もスキャン
(12) タスクの選択とパッケージのインストール - 追加指定なし
(13) メールサーバー Exim の設定 - ローカル配信のみ

パーティションの切り方が素人くさいですが、まぁ、一人で使うということと、ディスクサイズも大きいということから勘弁してつかーさい(汗)

とりあえず、以上の作業で最低限のインストール作業は終わりです。ただし、ネットワークに接続してメンテナンスできるようにするにはもう少し作業が必要。

| | コメント (0) | トラックバック (0)

参考書もあり□

とりあえず成り行きではじめるものの、走りながらとりあえず考える、ということは大変苦手なワタクシであります。

そういうわけで今回も半ば成り行き的にサーバーのリニューアルを開始ししたものの、参考書などは一通り揃えていたりします(もともと持っているやつとかも含みます)。

次回こそインストールレポート(のはず)。

| | コメント (0) | トラックバック (0)

2005年8月11日 (木)

Debian をインストールするぞ (1)

PC組み立てに関しては素人同然の私ですが、購入してきたパーツ一式は割とさっくりと組みあがりました。ま、ベアボーンだから当然か……

さて、ものが組みあがったところで OS をインストールしましょう。
今回はバージョンのライフサイクルも長く、管理もしやすいという Debian 3.1 (Sarge) を使うことにしてみます。って、書いている私の管理経験は RedHat が中心なのですが、大丈夫なんでしょうか。

まずはインストールディスクを作成するところからはじめましょう。 jigdo というツールを使い、インターネット上からファイルを収集してインストール用 DVD の ISO ファイルを作成します。

  1. jigdo-lite をjigdo のサイトからダウンロード(Windows用です)
  2. アーカイブを解凍して jigdo-lite.bat を実行
  3. jigdo ファイルの URL を指定
      http://cdimage.debian.org/debian-cd/3.1_r0a/i386/jigdo-dvd/
        debian-31r0a-i386-binary-1.jigdo
      http://cdimage.debian.org/debian-cd/3.1_r0a/i386/jigdo-dvd/
        debian-31r0a-i386-binary-2.jigdo
  4. HTTP サーバーの URL を指定
      http://ftp.jp.debian.org/debian/

ファイルのサイズがサイズですので、結構時間がかかります。寝る前にやるといいですな。

| | コメント (0) | トラックバック (0)

2005年8月 6日 (土)

リニューアルしましょう

めげませんよ、ワタクシは。ええ。

相変わらずの猛暑が続く大阪は日本橋ですが、老朽化気味の自宅サーバーを一新すべく、買出しに行ってまいりました。

今回のリニューアルの目的はズバリ、以下のような感じであります。

  • もう少し小さめの筐体にするぞ
  • メモリーも 2GB くらい積んでみよう
  • 今回は寿命の長いディストリビューションにするぞ
  • メールサーバーはやっぱり Postfix かなぁ
  • っていうかメールボックスは imap4 にしようぜ

てな感じです。もしかするとブログも……と野望は尽きないわけですが。

そんな話はさておき、今回買い揃えたのは以下のような構成。

  • AOPEN Bare System A2661-S-0428
  • Intel CeleronD 2.4GHz
  • NB PC2400 CL3 2GB RAM
  • Seagate 160GB HDD ST3160021A
  • AOPEN DVD-ROM Drive DVD1648/AAP

ちなみにこのうち DVD-ROM Drive だけは、買い忘れていてた上に、組み立ての最後まで気づかなかったというオチ。

| | コメント (0) | トラックバック (0)

その他のカテゴリー

Mac | おうちでサーバー