BINDのインストール (1)

最近独自ドメインを取ったので、BINDの運用を始めてみました。
とりあえずインストールのメモです。
BINDは最新バージョンである9.9.2-P1を使ってみました。
環境はCentOS 6.3。yumを使わず、Sourceからコンパイルします。

Download source file

以下のページからSource Fileをダウンロードします。
http://www.isc.org/software/bind

cd /usr/local/src
wget ftp://ftp.isc.org/isc/bind9/9.9.2-P1/bind-9.9.2-P1.tar.gz 

Install

  • opensslをenableにするためにはopenssl-develが必要なので、installしておく。
yum install openssl-devel
  • 解凍
tar xvfz bind-9.9.2-P1.tar.gz
  • Configure
cd bind-9.9.2-P1
./configure --prefix=/usr --localstatedir=/var \
--enable-ipv6  --enable-threads --enable-chroot \
--with-openssl=yes
    • --prefix=/usr: Install Directoryを/usrに指定。defaultは/usr/local
    • --localstatedir=/var: zone fileの場所を/varに指定。defaultはPREFIX/var
    • --enable-ipv6: IPv6 有効化
    • --enable-threads: Multi Thread有効化
    • --enable-chroot: chroot環境を有効化
    • --with-openssl=yes: opensslを利用する。なお、DNSSECを利用する場合は必須
  • make, make test
make
make test
  • make install
make install

次回の(2)はユーザ作成、初回の設定等を書いていきます。

Mac OS 10.8 (Mountain Lion)でNFS領域をマウントする。

FreeBSDZFSを使ったファイルサーバを構築し、MacOSからNFSマウントして使い始めました。
マウントした後、日本語を含むファイル名の文字コードの違いにより若干ハマったので、書き記しておきます。

MacOS文字コードUTF-8ではなく、UTF-8-MAC

MacOS以外の一般的なシステムでは、UTF-8を使うのが一般的となり、Windowsですらサポートするようになってきました。
ご多分に漏れずMacOSUTF-8はサポートしており、システムもUTF-8で正規化されています。
しかしながら、UTF-8の中にもUTF8 NFCというものと、UTF-8 NFDというものがあり、濁点、半濁点の扱い方が異なっているようです。
MacOSは後者のUTF-8 NFDで正規化されており、UTF-8-MACと呼ばれているようです。
LinuxFreeBSDなどはUTF-8 NFCで正規化されています。

このあたりのページが参考になりそうです。

上記の差異により、FreeBSDからexportしているNFS領域(UTF-8 NFC)をMacOS(UTF-8 NFD)で何も考えずにマウントすると、Finderでアクセスした時に濁点、半濁点を含むファイルが見えたり見えなかったり・・という事象が起こります。

NFC指定でマウントする

調べてみたところ、mount_nfsのオプションに、文字コードnfcでマウントするオプションがありました。
# MacOSだけです。また、他のOSにはnfdでマウントするオプションなどはありませんでした。

という訳で、Finderからマウントせず、以下の通りNFC指定でマウントしてみたところ、Finderからも問題なくファイルを閲覧することができました。

sudo mkdir /Volumes/nfs01
sudo mount -t nfs -o rw,nfc 192.168.1.129:/storage /Volumes/nfs01

CentOS/FreeBSDでDVDを焼く

CentOS or FreeBSDでDVDを焼くには、growisofsコマンドを使用します。

Install tools

FreeBSDの場合

FreeBSDの場合、portsからインストールします。

# cd /usr/ports/sysutils/dvd+rw-tools/
# make install clean
CentOSの場合

CentOSの場合、yumからインストールします。
growisofsはcdwパッケージに含まれています。

# yum install cdw.x86_64

Burn to DVD-R

ISOファイルを焼きこむ場合とファイルを焼く場合で指定の仕方が変わります。

ISOファイルを焼く

以下のような形でISOファイルを指定します。
私の環境では、DVD-RWドライブが/dev/cd0として見えています。
環境により、/dev/dvdなどに読み替えてください。

続きを読む

FreeBSDのUpdate

FreeBSDのパッチ当てです。
10/29にFreeBSD 9.1が出る予定でしたが、まだ出ていないようなので9.1へUpgradeはしません。
Update方法の確認ということで、FreeBSD 9.0-RELEASE-p3にUpdateしてみます。

Using the freebsd-update

FreeBSDのUpdateにはfreebsd-updateコマンドを使います。

  • fetchオプションをつけて実行し、パッチ情報を取得。
# freebsd-update fetch
  • fetchにinstallオプションを加えて実行し、Updateを適用します。
# freebsd-update fetch install
  • rebootして完了
# reboot

Configは/etc/freebsd-update.confがデフォルトのようです。

# freebsd-update [option]-f conffile

とすることで、configファイルを読み込んで実行することもできるみたいですが、普通に使う分にはあまり使わなそうです。

続きを読む

FreeBSDのアプリケーション管理 (1) - Portsを使ってみる

FreeBSDのアプリケーション管理についてのまとめ(1)です。
(2)はそのうち書きます。

Using the ports

FreeBSDのパッケージ管理にはPortsという仕組みを使います。
BSDをベースにしているMacMac Portsを使っていますね。

Portsソースコードの取得、FreeBSD用のパッチ当て、コンパイル、インストールをやってくれます。

Ready to use the ports

portsを使う前に、まずはportsnapというツールを使って、portsツリーを最新版にUpdateします。
# portsツリーとは、portsで管理されているソースコード群のコレクションのようなものです。

なお、ここでportsnapでUpdateしてしまうと、過去のバージョンには戻すことができません。

# portsnap fetch extract
続きを読む

証明書と秘密鍵のペアを確認する

続いてもう一個opensslネタ。
証明書と秘密鍵のペアが分からなくなった時に確認する方法です。

まずは秘密鍵と証明書それぞれで公開鍵を生成します。
以下のコマンドで秘密鍵から公開鍵を生成。

$ openssl rsa -in private.key -pubout
-----BEGIN PUBLIC KEY-----
(snip)
-----END PUBLIC KEY-----

次に、以下のコマンドで証明書から公開鍵と証明書を生成

$ openssl x509 -in hoge.cer -pubkey
-----BEGIN PUBLIC KEY-----
(snip)
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
(snip)
-----END CERTIFICATE-----

上記で出力された、PUBLIC KEY(公開鍵)の文字列を比較して、一致していれば証明書と秘密鍵が正しいペアであると言えます。

opensslでPKCS7形式の証明書からX.509形式の証明書を取り出す。

opensslを使ってPKCS7の証明書からX.509形式の証明書を取り出す方法です。
Windowsであれば、hoge.p7bとして保存して開いてしまえばExportできるのですが、Linuxでやるのは初めてでした。

openssl pkcs7 -in hoge.p7b -print_certs -out hoge.pem

opensslコマンドで、-print_certsオプションをつけることで、pkcs7形式にまとめられていたファイルをすべてpemフォーマットで出力可能でした。