2月 21
2011

今日は、ちょっと暖かいですね。寒さの中休み。。。

ということで、(どういうコトかは置いといて・・・)
今日は庭先で薫製をします。

装置は、七輪(4代目)、炭、スモーカー、桜のチップ。
薫製にされるのは、豚バラ肉の塊、鶏のモモ肉、ゆで卵、ウィンナー。。。

ちょっと面倒だったので、肉にはコショウと塩を塗り込んだだけ。(^_^)
たいぶ、手抜きですが、これでも美味しいんですよ。  

薫製装置 薫製の鶏モモと豚バラ

良い感じに薫製されました。いつも、熱薫と温薫の間くらいです。
もちろん、左手にはビールグラスは忘れていませんよ。(^_^)

豚バラの薫製 (別名薄塩ベーコン)

2月 18
2011

sftpにchrootdirectoryを適用するときに悩まないために for Leopard

2月 18th, 2011 sftpにchrootdirectoryを適用するときに悩まないために for Leopard はコメントを受け付けていません。

Snow Leopard に標準で付いているOpenSSHでsshサーバ運用しています。

そこで、第三者にsftpを提供することになったのですが、普通に提供すると他のディレクトリまで見えてしまいますね。パーミッションでがちがちにするのも良いのですが、抜けがあったりするとこれまた大変です。(^_^)

そこで、特定のユーザには chroot して、完全に隠蔽したsftp環境を提供しようという算段です。
最近にOpenSSHは標準で簡単にchrootの設定が出来ますのでこれはラッキー。(ちょっと前まで大変だったんですよ。。;p)

でも、sftpでchrootなんて皆さんやっていることですね。(^_^)
今回は、Mac の Leopard 環境でコマンドラインだけをもちいて、パスワード認証ではなくて、ちゃんと公開鍵を使う環境構築をやります。

何を言いたいのかというと、、、、
公開鍵を使って、なおかつ、chrootにて安全なsftp環境をユーザに提供する設定例です。

作業は、大体3つです。

1, ユーザの作成とホームディレクトの作成(鍵置き場)
2. chrootしてユーザに提供するsftp環境の作成
3. sshdの設定(sshd_config)

では、さっそく。。。

1. ユーザの作成とホームディレクトリの作成(鍵置き場)

Leopard では、ユーザの情報などはDirectry Serviceで行っております。なので、dsclコマンドを使います。dsclって覚えにくいですが、これはDirectory Service command lineの略ですね。
普段は /Users の直下にホームディレクトリを作成します。他のは書でも良いのですが、とりあえず、sftpuser という名前で作成しましょう。

まずは、利用されていないUID(UniqueID)とGID(PrimaryGroupID)を得ます。

$ dscl . -list /Users UniqueID
$ dscl . -list /Groups PrimaryGroupID

既に登録されているUIDやGIDが表示されます。まだ、登録されていない数字を選びます。今回はめんどくさいので両方とも600にします。

さあ、作成します。sudoコマンドにて実行してください。

$ sudo dscl . -create /Groups/sftpuser PrimaryGroupID 600
$ sudo dscl . -create /Users/sftpuser UniqueID 600
$ sudo dscl . -create /Users/sftpuser RealName Sftpuser
$ sudo dscl . -create /Users/sftpuser PrimaryGroupID 600
$ sudo dscl . -create /Users/sftpuser NFSHomeDirectory /Users/sftpuser
$ sudo dscl . -create /Users/sftpuser Password “*”
$ sudo /usr/sbin/createhomedir -b -u sftpuser

これで、ログインするためのユーザが作成されました。

2. chrootしてユーザに提供するsftp環境の作成

ユーザから何をされて良い環境、おっと、ユーザがいろいろファイルを置くための環境を作成します。
今回は、/Users/sftpwork を割り当てましょう。

ますはディレクトリを作成します。ただし、ココが重要。オーナはrootです、またパーミッションもrootさん以外は書き込みできないパミッションにします。

$ sudo mkdir /Users/sftpwork
$ sudo chown root:admin /Users/sftpwork
$ sudo chmod 755 /Users/sftpwork

/Users/sftpwork直下はsftpuserさんが書き込みできないので、sftpuserさんのオーナのサブディレクトリを作ってあげます。
たとえば、webページのドキュメントルートに指定してあげるなら /Users/sftpuser/docroot とか、ログファイルを提供してあげるなら、/Users/sftpuser/logs とか。ま、いろいろ考えられますね。

3. sshdの設定(sshd_config)

最後に、sshの設定です。
Leopardには、ssh(sftp)にOpenSSHがあらかじめインストールされています。ここでは、sftpuserさんに安全にsftpを提供するところだけ説明します。ご存じのように、/etc/sshd_config ファイルを編集します。パスワードで認証するのは心許ないので公開鍵でのみの認容にします。

sshd_config ファイルの最後に、

Match User sftpuser
ChrootDirectory /Users/sftpwork/
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

それから、Subsystem の記載の所を探して

#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp

というように、外部コマンドの/usr/libexec/sftp-serverを使用しないようにコメントアウトして、sshd組込のsftpサーバを利用する既述を追加します。もちろん、パスワード認証しないので、

PasswordAuthentication no

は、どこかに記載しておいてください。

さて、最後に公開鍵を設置します。

公開鍵は、もちろんユーザさんが作成します。作り方は、省略しますがssh_keygenコマンド作成できます。
公開鍵は、/Users/sftpuser/.sshディレクトリにauthorized_keysというファイルで保存します。その時、もちろんファイルのオーナはsftpuserさんですが、.sshディレクトリのパミッションは700、authorized_keysファイルのパミッションは600で無ければなりません。つまり、drwx——、-rw——- となります。

これで、安全にsftp環境を提供できるようになります。

しかし、、、私の環境ではこれではアクセスできませんでした。(^_^;
実は、次のようなエラーメッセージがサーバのログに出てました。

fatal: bad ownership or modes for chroot directory component “/”

なになに? /ルートのオーナがモードが変だと? たぶんに、パミッションが変なのでしょう。
“ls -al /” で調べると 確かに”/”(ここでは”.”ですね) にパーミッションのgroupとotherにw(書き込み)権限が付いてます。

sudo chmod go-w /

これで、/にはrootさん以外、書き込みできなくなりました。
結構、これに気が付くのに手間取ってしまったんですよ。同じ、事象の人の助けになれば幸いです。でも、sftp環境を他の人に提供している人なんてそんなに居ないか。。。それも、Macで(^_^;

2月 14
2011

今日は、昔からのお友達と飲んできました。

あまり遅くなっても、月曜だし。。、ということで早く切り上げて解散。

「よかった、早く切り上げて。」

見る見るうちに、まわりが白くなっていきます。
家に着く頃には5cmほど積もってしまいました。今年初めての積雪です。
あ、それに今日はバレンタインデーでしたね。。。

IMGP0083.jpg