ずいぶん前からIntelのD510MOが買ってあって、これで新しいサーバを組もうと思っていたのですが、このところ相当仕事が忙しくて、全く時間が無かった・・・というか寝る時間すらなかったので、かなりほって置いたのですが、やっと組み立てました。
Pentium4の531からAtomD510への移行ということで、スペックアップというよりは省電力化、静音化を狙ってという意味合いが強いです。外部公開する必要があるサービスはDNSとメールだけなので、別にスペックは必要無いのです。メールが増えてきたのでディスク容量は大幅に増加させましたが。
OSはOpenSolarisも考えましたが、Sunの買収により今後の動向が心配だったので、別のOSに移行する事にしました。個人的な趣味でFreeBSD / NetBSDでも良かったし、無難にCentOSという選択肢もアリだったのですが、GUIが使えるようにしておきたかった事と、クライアントPCとしても使ってみたかったのでUbuntu Serverにしてみました。
基本的にはDNSサーバもBind9からBind9、メールサーバもPostfix→Postfix、Dovecot→Dovecotという事でデータ移行を含めても数時間でさっくり動かすことが出来ました。
ついでにhavpとclamsmtpもインストールして、Web、メールのウイルスチェックも実施する事に。
「BIND」と一致するもの
NNTPとかINNとか。JUNETとか。Wideプロジェクトとか。懐かしいなぁ
精神的に落ち込むと何故か昔のinnに興味持ったくらいにして。「昔はよかったなぁ・・・」と。
単語で言うと
fj.unixとか
イソターネットとか
innで言うと
junk.はDiskの肥やしっていうよりジャンクなんでフィードしない設定をするとか。(newsfeeds)
Perlも5というか、5.003だったり。
個人的にインターネットに触ったのが95年位だったと記憶してるのですが、
当時は日本の独自UNIX(SVR4ベース)でNetScape1をコンパイルして動かした位で。
BINDも4だったし。(sendmail8も8.8とか、8.9位だったと・・・その後、いわゆるリレー転送の防止がパッチ出されたりしたような・・・)
PCもWindows3.1とかで、標準でTCP/IPがパソコンOSに実装されてなかったので、ソリトンのTCPをかインストールして、、、とか。
その後はWindows95の爆発的な普及とか、
個人が容易にインターネットに接続できるようになったりとか、
フレッツISDNで定額料金で利用出来るようになったりとか、
(確か月額おいくらでISDN 64k利用無制限)
ちょっと後の話で、ブロードバンドの普及だったり
起点は、95年当時のインターネットだったように思うのですが。。
インターネットって基本的に性善説だったんですよね、ちょっと悪質な利用者を戒めるのもネチケットとかいう緩いルールがベースだったし。ACLだって本来は設定する必要が無い・・・というか誰でも利用出来るのが本来・・・だったし。
とか思い出した、久々にfjの歩き方を見た今日。
当時ですが、受け側のサーバの色々な不具合があってNNTPのフィード失敗があると、
上位のINNサーバのメンテナに電話して復旧して貰ったり、、
DNSの不具合修正(とかドメイン登録、メンテその他)も電話して申請書をFAXだったりとか。
ある意味、今より緩かった記憶がありますね。
Face by faceでインターネット接続環境を得ていたというか。
あー懐かしいなというより
精神的に落ち込むと何故か昔のinnに興味持ったくらいにして。「昔はよかったなぁ・・・」と。
単語で言うと
fj.unixとか
イソターネットとか
innで言うと
junk.はDiskの肥やしっていうよりジャンクなんでフィードしない設定をするとか。(newsfeeds)
Perlも5というか、5.003だったり。
個人的にインターネットに触ったのが95年位だったと記憶してるのですが、
当時は日本の独自UNIX(SVR4ベース)でNetScape1をコンパイルして動かした位で。
BINDも4だったし。(sendmail8も8.8とか、8.9位だったと・・・その後、いわゆるリレー転送の防止がパッチ出されたりしたような・・・)
PCもWindows3.1とかで、標準でTCP/IPがパソコンOSに実装されてなかったので、ソリトンのTCPをかインストールして、、、とか。
その後はWindows95の爆発的な普及とか、
個人が容易にインターネットに接続できるようになったりとか、
フレッツISDNで定額料金で利用出来るようになったりとか、
(確か月額おいくらでISDN 64k利用無制限)
ちょっと後の話で、ブロードバンドの普及だったり
起点は、95年当時のインターネットだったように思うのですが。。
インターネットって基本的に性善説だったんですよね、ちょっと悪質な利用者を戒めるのもネチケットとかいう緩いルールがベースだったし。ACLだって本来は設定する必要が無い・・・というか誰でも利用出来るのが本来・・・だったし。
とか思い出した、久々にfjの歩き方を見た今日。
当時ですが、受け側のサーバの色々な不具合があってNNTPのフィード失敗があると、
上位のINNサーバのメンテナに電話して復旧して貰ったり、、
DNSの不具合修正(とかドメイン登録、メンテその他)も電話して申請書をFAXだったりとか。
ある意味、今より緩かった記憶がありますね。
Face by faceでインターネット接続環境を得ていたというか。
あー懐かしいなというより
bind 9.6.1-p1がリリースされています。
緊急度:高となっているDynamic Update機能の脆弱性のパッチが当てられています
Dynamic Updateを利用していなくても、Masterとして稼働させているゾーンがあれば対象となる・・・ということで(セカンダリDNSであってもlocalhostと127.0.0.0はMasterゾーンとして設定されていると考えられるため)、適用は必須のようです。
緊急度:高となっているDynamic Update機能の脆弱性のパッチが当てられています
Dynamic Updateを利用していなくても、Masterとして稼働させているゾーンがあれば対象となる・・・ということで(セカンダリDNSであってもlocalhostと127.0.0.0はMasterゾーンとして設定されていると考えられるため)、適用は必須のようです。
BIND 9のDynamic Update機能の脆弱性を利用したDoS攻撃について
Solaris10でGNU Screenがコンパイルできないで記載したとおり、何とかSolaris10でGNU Screenが使えるようになった訳ですけど。。。
ネタもないので、自分の.screenrc(GNU Screenの設定ファイル)を晒してみます。
あと、fortuneを入れておいて、3分放置すると名言集辞書が表示されるようになってます。
結構、ssh接続しっぱなしで放置する事が多いもんで。(^^;
ネタもないので、自分の.screenrc(GNU Screenの設定ファイル)を晒してみます。
escape ^Tt工夫というか、hardstatusで常に最下行にScreenのウインドウ一覧と日時が表示されるようになっています。キーバインドはCtrl+T。デフォルトのCtrl+Aは使いにくいし、Ctrl+XはEmacsと被るし、Ctrl+Zはシェルと被るので、、、不都合の少ないであろうキーを割り当てました。(昔はCtrl+Xだったんですが・・・)
startup_message off
hardstatus on
hardstatus alwayslastline "screen %{= wk} %`%-w%{=b bw}%n %t%{-}%+w %u %= %{= KG} %02m/%02d %{= KM}[%02c] "
autodetach on
defscrollback 20000
vbell on
bell ^G
idle 180 blanker
blankerprg fortune meigen
bind -c REGION 2 split
bind -c REGION 1 only
bind -c REGION 0 remove
bind -c REGION o focus
bind -c REGION ^ resize
bind x command -c REGION
bind w windowlist -b
bindkey "\033[5D" prev
bindkey "\033[5C" next
あと、fortuneを入れておいて、3分放置すると名言集辞書が表示されるようになってます。
結構、ssh接続しっぱなしで放置する事が多いもんで。(^^;
Bindですが、さっくりコンパイルする分には問題なかったのですが、
真面目に環境作ろうとすると、ちょっとつまずいたので。
どうせなら、OpenSSLも最新にしてやろうという考えだったんですが。
sunfreeware.comからダウンロードしたgcc3.4.6はどうも32ビット版のようで、OpenSSLのインストールが失敗する。
OpenSSL0.9.8k
この64ビット版と32ビット版の違いというヤツがbindでハマルもとになるのですが。
BIND 9.6.0-P1
crle(Linuxで言うldconfigのようなコマンド)でOpenSSLのライブラリを追加した。(まずここが間違っている・・・crleで設定するのはデフォルトでは32ビットのライブラリ検索パス)
BIND 9.6.0-P1
crleじゃなくて、エラーメッセージ通りにLD_LIBRARY_PATHを設定しても
BIND 9.6.0-P1
このままだらだら調べても時間の無駄なので、config.logを眺めてみる事に。めんどくさいですが。
ここまで来て、やっとBINDが32ビットでコンパイルされている事に気がついたのですが。
ライブラリの検索パスから、全部設定するのかぁ。。。
crleも-64を指定することで64ビットライブラリの検索パスが指定できるので。
BIND 9.6.0-P1
OpenSSLが64ビットでコンパイルされたって事は、他も全部そうしなきゃいけないって事で。実は大問題だったり・・・。
ちなみにSPARC機の場合はOpenSSLはデフォルトでは32ビットでコンパイルされるので、気を遣わなくて良いです。
64ビットでコンパイルする場合は逆に
真面目に環境作ろうとすると、ちょっとつまずいたので。
どうせなら、OpenSSLも最新にしてやろうという考えだったんですが。
sunfreeware.comからダウンロードしたgcc3.4.6はどうも32ビット版のようで、OpenSSLのインストールが失敗する。
OpenSSL0.9.8k
$ ./configこれは標準でインストールされているgcc(3.4.3)では、32ビット版と64ビット版のバイナリがどちらも生成できるようになっているので、不要なgccをアンインストールして対処。
$ gmake
gcc -I. -I.. -I../include -DOPENSSL_THREADS ¥
-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H ¥
-m64 -O3 -Wall -DL_ENDIAN ¥
-DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT ¥
-DSHA1_ASM -DSHA256_ASM ¥
-DSHA512_ASM -DMD5_ASM -DAES_ASM ¥
-c -o cryptlib.o cryptlib.c
cryptlib.c:1: sorry, unimplemented: 64-bit mode not compiled in
gmake[1]: *** [cryptlib.o] Error 1
gmake[1]: Leaving directory `/usr/local/src/openssl-0.9.8k/crypto'
gmake: *** [build_crypto] Error 1
$ sudo pkgrm SMCgccOpenSSL0.9.8k
$ ./configで、OpenSSLのインストール完了。
$ gmake
$ sudo gmake install
この64ビット版と32ビット版の違いというヤツがbindでハマルもとになるのですが。
BIND 9.6.0-P1
$ ./configure --prefix=/usr/local/bindでOpenSSLのライブラリが見つからないと言っているので、
checking for OpenSSL library... using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include
checking whether linking with OpenSSL works... no
configure: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
crle(Linuxで言うldconfigのようなコマンド)でOpenSSLのライブラリを追加した。(まずここが間違っている・・・crleで設定するのはデフォルトでは32ビットのライブラリ検索パス)
$ crleそして再び実行。
構成ファイル [バージョン 4]: /var/ld/ld.config
デフォルトライブラリパス (ELF): /lib:/usr/lib:/usr/local/ssl/lib
トラステッドディレクトリ (ELF): /lib/secure:/usr/lib/secure (システムデフォルト)
コマンド行:
crle -c /var/ld/ld.config -l /lib:/usr/lib:/usr/local/ssl/lib
BIND 9.6.0-P1
$ ./configure --prefix=/usr/local/bind当たり前ですが、結果同じ。
checking for OpenSSL library... using OpenSSL from /usr/local/ssl/lib and /usr/local/ssl/include
checking whether linking with OpenSSL works... no
configure: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
crleじゃなくて、エラーメッセージ通りにLD_LIBRARY_PATHを設定しても
BIND 9.6.0-P1
$ export LD_LIBRARY_PATH=/usr/local/ssl/lib:/usr/local/lib:/usr/lib:/lib:やっぱり結果同じ。
$ ./configure --prefix=/usr/local/bind
checking for OpenSSL library... using OpenSSL from /usr/local/ssl/lib and /usr/local/ssl/include
checking whether linking with OpenSSL works... no
configure: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
このままだらだら調べても時間の無駄なので、config.logを眺めてみる事に。めんどくさいですが。
| #include <openssl/err.h>やはりsslのライブラリが無いと言っている・・・。(当然 /usr/local/ssl/libを見るとライブラリはある)
| int main() {
| ERR_clear_error();
| return (0);
| }
|
configure:6152: result: no
configure:6157: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
ここまで来て、やっとBINDが32ビットでコンパイルされている事に気がついたのですが。
ライブラリの検索パスから、全部設定するのかぁ。。。
crleも-64を指定することで64ビットライブラリの検索パスが指定できるので。
$ crle -64当然未設定なので、設定して。
デフォルト構成ファイル(/var/ld/64/ld.config) が見つかりません
デフォルトライブラリパス (ELF): /lib/64:/usr/lib/64 (システムデフォルト)
トラステッドディレクトリ (ELF): /lib/secure/64:/usr/lib/secure/64 (システムデフォルト)
$ sudo crle -64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/usr/local/ssl/libgccに64ビットのオプション(-m64)を追加してコンパイル。
BIND 9.6.0-P1
$ CFLAGS="-m64" ./configure --prefix=/usr/local/bind --enable-ipv6=no結局、環境構築の問題だった訳ですが。
$ gmake
$ sudo gmake install
OpenSSLが64ビットでコンパイルされたって事は、他も全部そうしなきゃいけないって事で。実は大問題だったり・・・。
ちなみにSPARC機の場合はOpenSSLはデフォルトでは32ビットでコンパイルされるので、気を遣わなくて良いです。
64ビットでコンパイルする場合は逆に
$ ./Configure solaris64-sparcv9-gccと明示指定する必要があります。