Windows上のVirtualBoxでCoreOSを動かす
WindowsにインストールしたVirtualBoxでCoreOSを動かす手順のメモ
以下のサイトを参考にした。
http://logicflaw.info/blog/d/entry/coreos_on_windows_without_vagrant
CoreOSイメージのインポート
VirtualBoxでubuntuが動いているのでこのマシンで作業していく。
まずVagrant用のboxファイルをダンロードする。
$ wget http://storage.core-os.net/coreos/amd64-usr/alpha/coreos_production_vagrant.box -P /tmp
解凍する
$ sudo tar zxvf /tmp/coreos_production_vagrant.box -C /tmp/ ./ ./Vagrantfile ./configure_networks.rb ./box.ovf ./change_host_name.rb ./metadata.json ./coreos_production_vagrant_image.vmdk ./base_mac.rb
展開した「box.ovf」と「coreos_production_vagrant_image.vmdk」をwinscp等でwindows上に移動させる。
次に、virtualboxマネージャーの「ファイル」→「仮想アプライアンスのインポート」をクリックし、移動させた「box.ovf」を指定する。
「インポート」をクリックすると仮想マシンが作成される
インポートが終われば、「box.ovf」と「coreos_production_vagrant_image.vmdk」は不要なので削除してOK。
SSHログイン用の鍵を用意
再びubuntuで作業。
vagrantのdebパッケージのソースをダウンロード
$ sudo apt-get source vagrant
ダウンロードしたソースから鍵を探す
$ rgrep -l "BEGIN RSA PRIVATE KEY" ./vagrant-1.0.1/ ./vagrant-1.0.1/keys/vagrant
見つかったファイルをwindowsに移動させる。
起動、ログイン
インポートしたcoreOSのネットワーク設定をNATからブリッジアダプターに変更し起動する。
IPアドレスが表示されているので、teraterm等のターミナルから先ほどの鍵を使って接続する。
ユーザ名は「core」でパスワードなしでログインする。
無事ログインできた。
初期設定
タイムゾーンの設定
デフォルトではUTCになっている。
タイムゾーンの設定はtimedatectlコマンドを使用する
$ date Thu Jun 12 11:34:16 UTC 2014 $ timedatectl status Local time: Thu 2014-06-12 11:41:45 UTC Universal time: Thu 2014-06-12 11:41:45 UTC RTC time: Thu 2014-06-12 11:41:45 Time zone: n/a (UTC, +0000) NTP enabled: no NTP synchronized: yes RTC in local TZ: no DST active: n/a
Asia/Tokyoに変更する
$ sudo timedatectl set-timezone Asia/Tokyo $ timedatectl status Local time: Thu 2014-06-12 20:43:40 JST Universal time: Thu 2014-06-12 11:43:40 UTC RTC time: Thu 2014-06-12 11:43:40 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: no NTP synchronized: yes RTC in local TZ: no DST active: n/a $ date Thu Jun 12 20:43:42 JST 2014
docker 0.11のHost networkingを試してみた
dockerの最新版0.11がリリースされたので、
新しい機能のHost Networkingを試した際のメモ。
まずはさくっとアップデートする。
現在のバージョン確認
$ docker -v Docker version 0.10.0, build dc9c28f
アップデート
$ sudo apt-get install lxc-docker
バージョン確認。OK。
$ docker -v Docker version 0.11.1, build fb99f99
http://blog.docker.io/2014/05/docker-0-11-release-candidate-for-1-0/
に書いてある通りに--net=hostを指定してコンテナを起動する
$ sudo docker run -it --net=host ubuntu/base /bin/bash
起動できたのでIPアドレスを確認してみる
root@panda:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:15:5d:0a:d0:05 brd ff:ff:ff:ff:ff:ff inet 172.19.10.219/24 brd 172.19.10.255 scope global eth0 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff inet 172.17.42.1/16 scope global docker0
今まではコンテナを起動する際に
$ sudo docker run -it -p 8080:80 -p 2222:22 ubuntu/base /bin/bash
のようにしてポートフォワーディングでコンテナの80番ポートや22番ポートにアクセスしていたが、--net=hostを指定することで、コンテナのポートを直接叩くことができるようになる。
SSLサーバ証明書についてのまとめ
仕事でSSLサーバ証明書の作成、更新などを行うことがあるが、
仕組みや機能について漠然としか理解できていないので、まとめてみる。
後半は、自己認証局を立て、証明書を発行する手順と、自己署名証明書の作成手順についての記録。
SSLサーバ証明書の概要
SSLサーバ証明書とは
SSLサーバ証明書とはWebサーバの身分証明書のようなものでCA(Certificate Authority)と呼ばれる認証局が発行する。
誰でもCAになって証明書を発行できるため、必ずしも安全とは限らない。
このため、有力な商用CAが厳格な身元確認などの審査を要する「EV SSL証明書」の発行を行っており、
ブラウザ上の表示も通常とは区別されるようになっている。
SSLサーバ証明書の機能
SSLサーバ証明書は、以下の2つの機能により、インターネット上での情報のやり取りを安全なものにしてくれる。
・WebブラウザとWebサーバ間(もしくはサーバ同士)でSSL暗号化通信を行う機能
・通信先のサーバの運用組織が実在することを証明する機能
SSLサーバ証明書の種類
大きく分けて以下の3種類の証明書がある。
どちらもSSLによる暗号化は行われるが、証明書の信頼性が異なる。
種類 | 発行の仕組み |
---|---|
クイック認証SSL (ドメイン認証) |
whoisデータベースに登録されている情報をもとに審査が行われる。対象ドメインの所有は証明されるが、組織や個人の実在は証明されない。 |
組織認証SSL (組織実在認証) |
whoisデータベースでの照会に加え、第三者データベース(帝国データバンクやDUNS)に組織情報の照会を行い、法的に実在している組織であるかを確認する。その後、登録されている代表電話番号に電話を行い、実在確認を経て証明書が発行される |
EV SSL (Extended Validation) |
発行申請時に、申請者の印鑑証明書や登記簿謄本などの提出をする。次に、whoisデータベースでの照会に加え、第三者データベース(帝国データバンクやDUNS)に組織情報の照会を行い、物理的に実在している組織であるかを確認する。電話による実在確認を経て証明書が発行される |
さらに、以下ような機能がついた証明書もある。
名称 | 機能 | |
---|---|---|
ワイルドカード | 1枚の証明書でサブドメインを証明できる。例えば、「*.example.jp」というワイルドカード証明書は「www.example.jp」や「mail.example.jp」といったサブドメインに対しても正当な証明書として使用できる。ただし「*」は必ず1文字以上で置き換える必要があるため、「https://example.jp/」では利用できない。 | |
マルチドメイン | 1枚の証明書で複数のドメインを証明できる。通常、サーバのFQDNを「CN(Common Name)」というフィールドに格納するが、このCNは1つしか設定できない。これとは別に「SAN(Subject Alternative Names)」という拡張領域フィールドに別のドメイン名を複数格納することで、複数のドメイン名の証明をすることができる | |
サイトシール(SSLシール) | 証明書によって証明されているドメイン名や有効期限などをWebサイトに表示する機能のこと。クリックすると証明内容を表示する画像が表示される。 |
自己認証局での証明書の発行
本来であれば信頼のあるCAで認証してもらうが、今回は自分でCAを構築してみる。
そして構築したCAで作成したCSRに署名を行い、サーバ証明書を作成する
CAの構築
CAの構築にはopenssl付属のCA.shを使用する
CAは/usr/local/ssl/CAに構築する
予めCAの構築ディレクトリを作成しておく
$ sudo mkdir -p /usr/local/ssl/CA
CA.shをCAの作成場所にコピー
$ locate CA.sh /usr/lib/ssl/misc/CA.sh $ sudo cp /usr/lib/ssl/misc/CA.sh /usr/local/ssl/CA/
CA.shを修正する
$ sudo vi /usr/local/ssl/CA/CA.sh CATOP=/usr/local/ssl/CA
同様にopenssl.cnfも修正する
$ sudo vi /etc/ssl/openssl.cnf [ CA_default ] #dir = ./demoCA # Where everything is kept dir = /usr/local/ssl/CA # Where everything is kept
CA構築の準備ができたのでスクリプトを実行する
$ sudo ./CA.sh -newca Enter PEM pass phrase: ←パスフレーズを入力 Verifying - Enter PEM pass phrase: ←パスフレーズを再入力 ----- Country Name (2 letter code) [AU]: ←国名 State or Province Name (full name) [Some-State]: ←都道府県名 Locality Name (eg, city) []: ←市区町村名 Organization Name (eg, company) [Internet Widgits Pty Ltd]: ←組織名 Organizational Unit Name (eg, section) []: ←部署名 Common Name (e.g. server FQDN or YOUR name) []: ←サーバのホスト名 Email Address []: ←連絡先メールアドレス A challenge password []: ←ENTER An optional company name []: ←ENTER
これでCAの構築は完了。
/usr/local/ssl/CA以下にcacert.pem(認証局の証明書)と
/usr/local/CA/private以下にcakey.pem(認証局の秘密鍵)が作成されている。
作成した証明書は以下のコマンドで内容の確認ができる
openssl x509 -in /usr/local/ssl/CA/cacert.pem -text
サーバの秘密鍵を作成する
サーバの秘密鍵は/usr/local/ssl/SERVERに作成する
ディレクトリの作成、パーミッションの変更
$ sudo mkdir /usr/local/ssl/SERVER $ sudo chmod 600 /usr/local/ssl/SERVER
サーバの秘密鍵の作成
$ sudo openssl genrsa -des3 -out /usr/local/ssl/SERVER/server.key 1024 Enter pass phrase for /usr/local/ssl/SERVER/server.key: ←パスフレーズを入力 Verifying - Enter pass phrase for /usr/local/ssl/SERVER/server.key: ←パスフレーズを再入力
apacheで利用すると、起動時にパスワードを要求されるのでパフレーズを解除しておく
$ sudo openssl rsa -in ./SERVER/server.key -out ./SERVER/server_nopass.key Enter pass phrase for ./SERVER/server.key: writing RSA key
鍵の中身を確認するには以下のコマンドを使う
$ sudo openssl rsa -in ./SERVER/server.key -text
CSR(署名要求書)を作成する
同一ホストの自己認証局を利用する場合、CA構築時とまったく同じ内容を入力する必要がある
$ sudo openssl req -new -days 365 -key ./SERVER/server.key -out ./SERVER/csr.pem Enter pass phrase for ./SERVER/server.key: ←サーバの秘密鍵のパスフレーズ入力 ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []: A challenge password []: An optional company name []:
CSRの中身を確認するには以下のコマンドを使う
$ sudo openssl req -in ../SERVER/csr.pem -text
サーバ証明書の作成
CAでCSRに署名をする
$ cd /usr/local/ssl/CA/ $ sudo openssl ca -in ../SERVER/csr.pem -keyfile ./private/cakey.pem -cert ./cacert.pem -out ../SERVER/cert.pem Enter pass phrase for ./private/cakey.pem: Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
サーバ証明書をApacheへ設定
まず、Apacheでmod_sslが有効になっているか確認する。
$ sudo apachectl -M | grep ssl
何も返ってこないので有効になっていない
mod_sslを有効にする
$ sudo a2enmod ssl $ sudo service apache2 restart $ sudo apachectl -M | grep ssl ssl_module (shared)
$ sudo mkdir /etc/apache2/ssl $ sudo mv /usr/local/ssl/SERVER/cert.pem /etc/apache2/ssl/ $ sudo mv /usr/local/ssl/SERVER/server_nopass.key /etc/apache2/ssl/ $ sudo chmod 400 /etc/apache2/ssl/server_nopass.key
サイトの設定
$ sudo vi /etc/apache2/sites-available/default-ssl SSLCertificateFile /etc/apache2/ssl/cert.pem SSLCertificateKeyFile /etc/apache2/ssl/server_nopass.key
サイトを有効にし、再起動
$ sudo a2ensite default-ssl $ sudo service apache2 restart
ブラウザでhttps://(サーバのIPアドレス、またはサーバ名)/ にアクセスする。
ただし、自己認証局を利用して署名したサーバ証明書を利用しているため警告が表示される
自己署名証明書の作成
CAで署名せず、自己署名した証明書を作成することもできる
秘密鍵とCSRを作成した後、以下のコマンドを実行する
$ sudo openssl x509 -days 3650 -in ./SERVER/csr.pem -req -signkey ./SERVER/server.key -out ./SERVER/server.cert
ワイルドカード自己署名証明書の作成
ワールドカード自己署名証明書を作成するには、
CSR作成時のCNフィールドに「*.example.jp」のように入力する
Common Name (eg, your name or your server's hostname) []:*.example.jp
後の手順は他と同じ。
名前ベースのバーチャルホストでSSLを使用するには
以前は、名前ベースのバーチャルホストでは、複数のサーバ証明書を使用することはできなかった。
バーチャルホストで複数のサーバ証明書を使うには、IPベースのバーチャルホストにするか、ワイルドカードもしくはマルチドメイン証明書を使用する必要があった。
しかし現在では、SNI(Server Name Indication)という、SSLプロトコルに対する拡張機能をサポートするサーバとブラウザ間の通信であれば、名前ベースのバーチャルホストでもSSLが使えるようになった。
SNIを使用できる条件としては以下の通り。
設定として特別なことは不要で、HTTPの名前ベースのバーチャルホストと同じように設定すればよい。
Listen 443 NameVirtualHost *:443 SSLStrictSNIVHostCheck off <VirtualHost *:443> DocumentRoot /var/www/example1/ ServerName www.example1.jp ... SSLEngine on SSLCertificateFile /etc/apache2/ssl/example1.pem SSLCertificateKeyFile /etc/apache2/ssl/server_nopass.key ... </VirtualHost> <VirtualHost *:443> DocumentRoot /srv/www/example2/ ServerName www.example2.jp ... SSLEngine on SSLCertificateFile /etc/apache2/ssl/example2.pem SSLCertificateKeyFile /etc/apache2/ssl/server_nopass.key ... </VirtualHost>
「SSLStrictSNIVHostheck Off」はSNI未対応のブラウザからアクセスした際の挙動を制御する設定。
「Off」の場合は、デフォルトのバーチャルホストへリダイレクトされる。
「On」の場合は、サイトへのアクセス自体が拒否される。
treeコマンドで罫線が文字化けするときの対処法
teratermでサーバにssh接続し、treeコマンドを使用した際に
以下のように罫線が文字化けして表示される
TERATERM.INIに設定を書く方法もあるようだが、
手っ取り早く直すには「--charset」オプションを使用する
$ tree --charset=C
「C」の部分はなんでも良い。
結果はこのようになる。
$ tree --charset=o -L 2 . |-- bin | |-- bash | |-- bunzip2 | |-- busybox | |-- bzcat | |-- bzcmp -> bzdiff | |-- bzdiff | |-- bzegrep -> bzgrep | |-- bzexe | |-- bzfgrep -> bzgrep
その他のオプション
オプション | 機能 |
---|---|
-L [number] | 現在の位置から表示させる階層の数 |
-s | ファイル・ディレクトリのサイズを表示(-hを併用するとわかりやすい単位で表示) |
-d | ディレクトリのみ表示 |
-o [file] | 指定したファイルに出力 |
-a | 隠しファイルも表示 |
-p | パーミッションを表示 |
-D | 最終更新日時を表示 |
-F | ファイル名末尾に識別記号を付加(/、@など) |
-f | フルパスを表示 |
-P [pattern] | パターンにマッチしたファイルのみ出力 |
-I [pattern] | パターンにマッチしたファイルは出力しない |
rsyncコマンドの使い方
rsyncコマンドの使い方をよく忘れるのでまとめておく。
書式
rsync [オプション] コピー元 コピー先
注意するのはコピー元の書き方
$ rsync -avz ./src ./dst/
のようにすると
$ ls ./dst/
src
dst以下にsrcディレクトリがそのまま作成される。
srcディレクトリ以下のみをdst以下にコピーするには、
次のようにコピー元に/を付ける
$ rsync -avz ./src/ ./dst/
オプション
オプション | 機能 |
---|---|
-a | コピー元のパーミッションやグループ情報などを保持。-a は -rlptgoDと同じ |
-v | 進行状況を詳細に表示。最大3個まで付けられる |
-z | データを圧縮する |
-u | 追加、更新されたファイルのみコピー |
-n | 実際には同期を実行せず、実行時の動作だけを表示 |
-r | ディレクトリを再帰的にコピー |
-l | シンボリックリンクをそのまま(リンク先は変えずに)コピー |
-L | シンボリックリンクを通常のファイルのように扱う |
-p | パーミッションを保持 |
-t | タイムスタンプを保持 |
-g | グループを保持 |
-o | オーナーを保持 |
-D | デバイスを維持する (root のみ実行可能) |
-b | バックアップを作成する |
-h | バイト数をわかりやすい単位で表示 |
--delete | コピー元で削除したファイルをコピー先でも削除する |
--include=PATTERN | 指定したパターンに一致するファイルを動機対象から除外しない |
--include-from=FILE | ファイルに記述されたパターンと一致するファイルを除外しない |
--exclude=PATTERN | 指定したパターンに一致するファイルを同期対象から除外する |
--exclude-from=FILE | ファイルに記述されたパターンと一致するファイルを除外する |
--existing | 新しいファイルを作成せず、受信側に既に存在するファイルだけを更新する |
--status | 転送効率を表示 |
使用例
リモートマシンへのコピー
$ rsync -avz ./src/ example.com:/dst/
通信にはsshが使用される
rshを使用するには以下のようにする
$ rsync -avz -e rsh ./src/ example.com:/dst/
同期する(全く同じ構造にする)
「--delete」オプションを付ける
$ rsync -avz --delete ./src/ ./dst/
PAM認証についてのまとめ
PAMの設定ファイルの構文
type control module-path module-arguments
type
typeでは、どの認証の方を使用するべきかPAMに知らせる。
PAMは次の4つの型を識別する。
type | 意味 |
---|---|
acount | ユーザがサービスへのアクセスを許可されているかどうか確認する(パスワードの正誤は問われない) |
auth | パスワード認証によって本物のユーザかどうか確認する |
password | パスワード設定に使用される |
session | 認証の前後で実行することを指定。ログの記録やマウントなど |
control
認証の失敗時にどのように処理するかPAMに知らせる。
次の4つの型がある。
control | 意味 |
---|---|
required | このモジュールが成功しないと全体は認証されない。失敗した場合も次のモジュールがある場合は続けてそちらを参照する |
requisite | 認証に失敗した場合は即座に終了する |
sufficient | 他のモジュールが成功して、このモジュールも成功すると以降のモジュールは参照されずに認証される |
optional | 他に参照すべきモジュールがない場合だけ、成功すると認証される |
なお以下のような指定もすることができる
[リターンコード1=アクション1,リターンコード2=アクション2...]
module-path
モジュールのパスを指定
module-arguments
モジュールに引数を渡す
Postfixについて
Postfixとは
Postfixの内部構成
キュー
・incoming
SMTPなどで外から受け付けたメールが格納される
・active
メールの配送が試みられるときにメールが格納される
・deferred
一時的なエラーで配送に失敗した場合に格納される
配送に失敗した理由などの情報はdeferディレクト配下のキューIDの名前のファイルに格納される
・maildrop
マシン内部で正世されたメールが最初に格納されるキュー
アクセス制御パラメータ
・smtpd_client_restrictions
クライアントからの接続時に評価されるアクセス制御のリスト
・smtpd_helo_restrictions
HELO/EHLOコマンド発行時に評価されるアクセス制御のリスト
・smtpd_sender_restrictions
MAILコマンド発行時に評価されるアクセス制御のリスト
・smtpd_recipient_restrictions
RCPTコマンド発行時に評価されるアクセス制御のリスト
permit_mynetworks
reject_unauth_destinations
・smtpd_data_restrictions
DATAコマンド発行時に評価されるアクセス制御のリスト
・smtpd_end_of_data_restrictions
DATAコマンド終了時に評価されるアクセス制御のリスト
・smtpd_etrn_restrictions
ETRNコマンド発行時に評価されるアクセス制御のリスト
これらのパラメータは接続時/各コマンド発行時のタイミングで評価される
※ただし$smtpd_deley_rejectがyesの場合(デフォルト)、smtpd_client_restrictions、
smtpd_helo_restrictions、smtpd_sender_restrictions、smtpd_recipient_restrictionsは
RCPTコマンド発行時にまとめて評価される
smtpd_*_restrictionsに設定されたアクセス制御は記述された順番に評価される。
どのアクセス制御条件にも該当しない場合はアクセスは許可される
アクセス制御の種類
・permit
アクセスを許可する
・defer
アクセスを一時的に拒否する(エラーコード:450)
・defer_if_permit
これ以降の評価結果でアクセスが許可される場合は代わりにdeferする
・defer_if_reject
これ以降の評価結果でアクセスが拒否される場合は代わりにdeferする
・reject
アクセスを拒否する(エラーコード:554)
・warn_if_reject
この次に書かれたアクセス制御の評価の結果、アクセスが拒否される場合、
ログに警告を出力して、評価結果を無視し評価を続ける
・sleep
引数として秒数を指定する。指定された秒数だけ停止し、
次の評価に進む
・check_client_access
引数としてルックアップテーブルを指定する。
クライアントのIPアドレスまたはDNSを逆引きしてホスト名をキーとして
ルックアップテーブルを検索し、得られた値をアクセス制御として使用する
・permit_mynetworks
クライアントのIPアドレスが$mynetworksに適合する場合にアクセスを許可する
・reject_invaild_helo_hostname
引数としてルックアップテーブルを指定する。
HELO/EHLOでクライアントが名乗ったホスト名をキーとしてルックアップテーブルを
検索し、得られた値をアクセス制御として使用する
・reject_invaild_helo_hostname
HELO/EHLOでクライアントが名乗ったホスト名が文法的に不正な場合アクセスを
拒否する(エラーコード:501)
・reject_non_fqdn_helo_hostname
HELO/EHLOでクライアントが名乗ったホスト名がFQDNでない場合アクセスを
拒否する(エラーコード:501)
・check_sender_access
・引数としてルックアップテーブルを指定する。
送信者メールアドレスをキーとしてルックアップテーブルを検索し、
得られた値をアクセス制御として使用する
・reject_non_fqdn_sender
送信者メールアドレスのドメイン部が不正な形式の場合アクセスを拒否する
・reject_unknown_sender_domain
送信者メールアドレスのドメイン部に対するDNSのA,MXレコードが存在しない場合、
アクセスを拒否する
・check_recipient_access
引数としてルックアップテーブルを指定する
宛先メールアドレスをキーとしてルックアップテーブルを検索し、
得られた値をアクセス制御として使用する
・permit_auth_destination
宛先メールアドレスのドメイン部が「$relay_domains」「$mydestination」
「$inet_interfaces」「$proxy_interfaces」「$virtual_alias_domains」
「$virtual_mailbox_domains」のいずれかに適合する場合アクセスを許可する
・reject_non_fqdn_recipient
宛先メールアドレスのドメイン部が不正な形式の場合アクセスを拒否する
・reject_unauth_destination
受信者アドレスのドメイン部が「$relay_domains」「$mydestination」
「$inet_interfaces」「$proxy_interfaces」「$virtual_alias_domains」
「$virtual_mailbox_domains」のいずれにも適合しない場合アクセスを拒否する
・reject_unknown_recipient_domain
宛先メールアドレスのドメイン部に対するDNSのA,MXレコードが存在しない場合、
アクセスを拒否する(エラーコード:450)
・reject_unlisted_recipient
宛先メールアドレスのドメイン部が自分が受け取るべきものなのに、
存在するユーザがいない場合アクセスを拒否する
ルックアップテーブル
postfoxのパラメータでルックアップテーブルを指定する場合は「タイプ名:引数」とする
・hash
単純に検索キーと値のペアを指定するルックアップテーブル。
ファイルはBerkeleyDBのhash形式のデータベース。
・dbm
使用しているデータベースの形式がDBM形式であること以外はhashと同じ。
・cidr
検索キーのパターンにネットワークアドレスを指定できる形式。
・static
検索キーに係らず常に一定の値を返すルックアップテーブル。
・regexp
検索キーに適合するパターンを正規表現で指定する。
・unix
passwd、groupデータベースを参照するルックアップテーブルをこちらで
・mysql
検索にmysqlを使用するルックアップテーブルをこちらで
コマンドラインユーティリティ
Postfixコマンド
・postfix start
・postfix stop
・postfix status
・postfix reload
・postfix abort
・postfix drain
・postfix flush
・postfix check
Postfixパラメータの管理
・postconf
・-nオプション
・-dオプション
・-eオプション
・-mオプション
・postmap
・-sオプション
・-qオプション
・-dオプション
・-i/-r/-wオプション
・postalias
・newaliases
キュー管理コマンド
・postqueue
・-pオプション
・postcat
・mailq
・postsuper
疲れたので詳細はまた後日・・・