Gentooの最近の記事

httpサーバ移行

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

なんとなく,apache2からnginxへとhttpサーバを移行.

ここらへんを参考に.しばらく運用してみる.

zfs on linux root filesystem

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

Install Gentoo on ZFS Root

備忘録.ようやくルートパーティションをZFSにできるようになったので,上記リンクを参考に試してみた.

今のところ,大きな問題はなく安定稼働中.

ちなみに最近は,インストール時起動用のLinuxはubuntuのインストールCDをUSBに焼いて使用するようにしている.GUIからブラウザにてインストールマニュアルを参照しながらインストールできるので,作業効率が良い.

玄箱T4再登板の巻

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

3年ほど前に購入した玄箱T4.職場で使おうとHDDを換装・・・しようとしたのだが,問題発生.最近のメインストリーム容量である3TB×4なのだが,こちらからブートしない.


BUFFALO>> boot
Loading sata 3:1:uImage-2.6.39.buffalo
GPT: last_usable_lba incorrect: 15D50A38E > 5D50A3B0
get_partition_info_efi: *** ERROR: Invalid GPT ***
is_pte_valid: Invalid Argument(s)
get_partition_info_efi: *** ERROR: Invalid partition number 1 ***
** Invalid partition 1 **
ext2load - load binary file from a Ext2 filesystem

こんな感じ.要するにブートローダとの相性がわるいようだ.また,容量が大きくなった関係上,MBRではなくGPTを使わざるを得なくなったことも関係しているようだ.

で,ブートローダのソースを持ってきてごにょごにょしたところ,セクタサイズを512バイト固定長として扱っている部分を発見.

使用しているのは(当然のことながら)4KセクタHDD.このせいでセクタ数が512セクタ比で1/8となり,最終LBA数が合わなくなった模様.

本来ならば,HDDのセクタサイズを検出して正しいセクタサイズをセットするようhackするのが正解だが,簡単にセクタサイズを検出する方法が見つからなかったため,思い切ってエラー検出後のリターンをコメントアウトすることで対処.どうせカーネルをロードさえしてくれたら用済みなのだし.
# 昔々,似たような事をやった経験が・・・.

現在は何事もなかったように稼働しており,Software-RAIDの再構築中.あとは現在のファイルを転送して,本格運用か.

それにしても,まあ,これだけ非互換となる変更を次々導入するHDD屋さんって,なんとも罪作り.

ブートローダの書き換えに関しては,こちらを参考にした.

samba 4.0 試用中

| コメント(0) | トラックバック(0)
WindowsでのログインアカウントとIEEE802.1Xアカウントを統合し,Single Sign-On環境を構築するために,Active Directory(AD)を構成してみた.Windows Serverでは簡単にできる(のだろう)が,金がないので,samba様の力を借りることに.

sambaのver.4.0(開発中)はADを構成することが可能となっている.samba ver.3.6 まではアカウントなどのバックエンドデータベースにOpenLDAPを利用することが通常であったが,ver.4.0より諸般の理由から,自前のLDAPサービスを利用する様になっている.

最初に利用したalpha17では不安定さが見られたが,最近beta2にアップデートし,今のところ不安定さは見られていない.

UNIXアカウントのバックエンドデータベース(NIS)としても使用したい位なのだが,今のところ,アカウントにUIDをヒモづけられない(=マシンによってUIDが変わってしまう)ため,未だ踏み切れていない.

導入は,samba4 HOWTOの通りに実施すればOK.

gentoo Linuxのパッケージはalpha17までしか存在していないため,beta2用には,Fedoraのspecファイルを参考に,自作.とりあえず動いている.

beta3用のパッケージも作成したが,時間的余裕が無いため,今のところ未導入.


サーバ移行(済み)

| コメント(0) | トラックバック(0)
立ち上げ時から使っているさくらのVPSがリニューアルとかで、現在のプランと同額でメモリ倍、ディスク容量5倍となる新プランができた。現在利用中の利用者に対して、移行キャンペーンとかでさしたるペナルティなしに移行可能なので、移行した。

最初の立ち上げ同様こちらのページを参考に、システムを立ち上げ。ディスクデバイスがvirtio利用したものに変更となったため、kernelのconfigを修正の上(これに気づくまで、何度かやり直した)、無事起動成功。

その後は、稼働中サーバの設定をコピーして、必要なライブラリなどをインストール。

現在は、移行後のサーバが何事もなかったように稼働している。

y2blog - LeopardサーバのRADIUS #7 : WindowsXP標準サプリカントへの対応から。

FreeRadiusにてEAP-TLS or EAP-PEAP認証サーバを構築し、WindowsXP以降の標準サプリカントにて利用する場合には、証明書にあるextensionが含まれている必要がある。

通常のサーバ証明書の作成手順で署名要求書まで作成する。

CAの署名時に(gentooLinuxの場合、/etc/raddb/certs/以下にある)xpextensionsファイルを利用する。
以下、引用。

 サーバの署名要求 (CSR) とクライアントの署名要求を作成する所までは今までと同じです.異なるのはCAによる署名手続きです.サーバの場合とクライアントの場合で組み込む extension が異なります.extensionの定義ファイル "xpextension" の内容は次のようになっています.

 

#
#  For use with the 'CA.all' script.
#
[ xpclient_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.2

[ xpserver_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1

 

サーバ用のコマンド例 (画面の都合で2行にしてありますが、実際は1行です)
 #openssl ca  -policy policy_anything -out newcert.pem -extensions xpserver_ext
      -extfile xpextensions -infiles newreq.pem

 

クライアント用のコマンド例
 #openssl ca  -policy policy_anything -out newcert.pem -extensions xpclient_ext
       -extfile xpextensions -infiles newreq.pem
以上。
 
Enhanced by Zemanta
サーバ証明書作成編。

まず、サーバ用の秘密鍵を作成

openssl genrsa -rand /dev/urandom -des3 -out mutsuki-key.pem 2048

このままだと、何かのサービスを立ち上げるたびにパスフレーズを要求されるため、
パスフレーズを解除する。当然セキュリティレベルは低下するので、利便性との
トレードオフ。

openssl rsa -in mutsuki-key.pem -out mutsuki-nopasskey.pem

それを利用して、CAに対しての署名要求書を作成する。

openssl req -new -days 3650 -key mutsuki-key.pem -out csr.pem -config openssl.cnf

CAとして、書名要求書に署名する。

openssl ca -in csr.pem -keyfile private/cakey.pem -cert cacert.pem -out mutsuki-cert.pem

あとは、サービスごとに必要な設定をする。
誰得な備忘録。
rootCAの公開証明書と秘密鍵の作成

適当なディレクトリを掘って、sslフォルダからopenssl.cnfをコピーする。

んで編集。
----- ここから -----
--- /etc/ssl/openssl.cnf        2012-01-28 08:50:35.982866598 +0900
+++ openssl.cnf 2012-03-08 10:10:34.342555551 +0900
@@ -39,7 +39,7 @@
 ####################################################################
 [ CA_default ]

-dir            = /root/privateCA       # Where everything is kept
+dir            = /root/wct-labCA       # Where everything is kept
 certs          = $dir/certs            # Where the issued certs are kept
 crl_dir                = $dir/crl              # Where the issued crl are kept
 database       = $dir/index.txt        # database index file.
@@ -70,7 +70,7 @@
 # crlnumber must also be commented out to leave a V1 CRL.
 # crl_extensions       = crl_ext

-default_days   = 365                   # how long to certify for
+default_days   = 3650                  # how long to certify for
 default_crl_days= 30                   # how long before next CRL
 default_md     = default               # use public key default MD
 preserve       = no                    # keep passed DN ordering
@@ -103,7 +103,7 @@

 ####################################################################
 [ req ]
-default_bits           = 1024
+default_bits           = 2048
 default_keyfile        = privkey.pem
 distinguished_name     = req_distinguished_name
 attributes             = req_attributes
@@ -126,24 +126,25 @@

 [ req_distinguished_name ]
 countryName                    = Country Name (2 letter code)
-countryName_default            = AU
+countryName_default            = JP
 countryName_min                        = 2
 countryName_max                        = 2

 stateOrProvinceName            = State or Province Name (full name)
-stateOrProvinceName_default    = Some-State
+stateOrProvinceName_default    = Hokkaido

 localityName                   = Locality Name (eg, city)
+localityName_default           = Kushiro

 0.organizationName             = Organization Name (eg, company)
-0.organizationName_default     = Internet Widgits Pty Ltd
+0.organizationName_default     = Kushiro NCT

 # we can do this but it is not needed normally :-)
 #1.organizationName            = Second Organization Name (eg, company)
 #1.organizationName_default    = World Wide Web Pty Ltd

 organizationalUnitName         = Organizational Unit Name (eg, section)
-#organizationalUnitName_default        =
+organizationalUnitName_default = WCT-Lab, Dept. of Electronic Eng.

 commonName                     = Common Name (e.g. server FQDN or YOUR name)
 commonName_max                 = 64
@@ -167,13 +168,13 @@
 # This goes against PKIX guidelines but some CAs do it and some software
 # requires this to avoid interpreting an end user certificate as a CA.

-basicConstraints=CA:FALSE
+basicConstraints=CA:TRUE

 # Here are some examples of the usage of nsCertType. If it is omitted
 # the certificate can be used for anything *except* object signing.

 # This is OK for an SSL server.
-# nsCertType                   = server
+nsCertType                     = server

 # For an object signing certificate this would be used.
 # nsCertType = objsign
@@ -245,7 +246,7 @@
 # keyUsage = cRLSign, keyCertSign

 # Some might want this also
-# nsCertType = sslCA, emailCA
+nsCertType = sslCA, emailCA

 # Include email address in subject alt name: another PKIX recommendation
 # subjectAltName=email:copy
@@ -327,7 +328,7 @@
 [ tsa_config1 ]

 # These are used by the TSA reply generation only.
-dir            = /root/privateCA               # TSA root directory
+dir            = /root/wct-labCA               # TSA root directory
 serial         = $dir/tsaserial        # The current serial number (mandatory)
 crypto_device  = builtin               # OpenSSL engine to use for signing
 signer_cert    = $dir/tsacert.pem      # The TSA signing certificate

------ ここまで ------

ついでに、CA.shもssl/misc以下からコピーし、編集。
----- ここから -----
--- /etc/ssl/misc/CA.sh 2012-03-06 18:12:50.000000000 +0900
+++ CA.sh       2012-03-08 10:15:13.490425743 +0900
@@ -59,16 +59,17 @@
 }

 if [ -z "$OPENSSL" ]; then OPENSSL=openssl; fi
+SSLEAY_CONFIG="-config openssl.cnf"

 if [ -z "$DAYS" ] ; then DAYS="-days 365" ; fi # 1 year
-CADAYS="-days 1095"    # 3 years
+CADAYS="-days 3650"    # 3 years
 REQ="$OPENSSL req $SSLEAY_CONFIG"
 CA="$OPENSSL ca $SSLEAY_CONFIG"
 VERIFY="$OPENSSL verify"
 X509="$OPENSSL x509"
 PKCS12="openssl pkcs12"

-if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
+if [ -z "$CATOP" ] ; then CATOP=/root/wct-labCA ; fi
 CAKEY=./cakey.pem
 CAREQ=./careq.pem
 CACERT=./cacert.pem
----- ここまで -----

sh CA.sh -newca

これによって、オレオレルート証明書(公開鍵・秘密鍵)が作成された。

Windowsなどにインポートできる形式にするには以下のコマンド。

openssl x509 -in cacert.pem -outform DER -out cacert.der

サーバ証明書などは、別記事にて。
Windowsに比べ多種多様なファイルシステムが存在するUnix系OS。

OS新規インストールするときにはどれを選択するべきか、悩むことが楽しくもあり、面倒でもあり。

最近はシステムパーティションにはbtrfs、データ保存(=home)にはnilfsが定番となっている。
nilfsはこれと言ったトラブルもなく、オンラインリサイズなども動作しており、非常に安定している印象。

一方、btrfsではトラブル2件発生。
1件は、パーティションリサイズ後にファイル書き込みが不能となってしまった。tmpディレクトリだったので、アンマウント後、再フォーマットで復旧。

もう1件は、使用中に不整合が起きるようで、パッケージのアップデート中にパーミッション不整合が報告されてしまう。
こちらはルートパーティションでの症状で、かつarmベースのNAS(某○○志向の○箱)なので、再インストールが面倒なため、試行錯誤中。

まあ、"under heavy development"なファイルシステムなので、自己責任ではあるのだが、btrfsはまだやめておいた方が良い、という印象。

やっぱり、btrfsよりもxfsとか、reiserfsなどの方が良いのだろうか。