最新 追記

だめだめ日記

ツッコミの内容は検索サイトからの検索やサイトのレーティングに影響します。そのため問題があるキーワードを含むと思われるツッコミについては、当方の判断で削除することがあります。予めご了承ください。 なお、コメントspamと判断されたツッコミは自動的に消去されます。ご容赦ください。
2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|05|06|09|10|11|12|
2013|01|02|02|03|08|09|
2014|01|
2015|09|10|11|
2016|01|04|

執筆、翻訳などに関わった書籍類


Linux教科書
LPICレベル3 300試験

マスタリング Nginx

実践 パケット解析 第2版

改訂版 Sambaのすべて

Samba [実践]入門

アンドキュメンテッド
Microsoftネットワーク

その他の書籍は だめだめ日記のおみせ@本店でどうぞ。



2013年03月03日 [長年日記]

[Samba]Samba 4.0でBIND9のDLZ(Dynamic Loadable Zone)機能を用いたDNSサーバ機能を有効化する

何度かやったことはありましたが、備忘録として。

Samba 側の設定

configure、makeなどは特に意識する必要はありません。最後に provision するときに、以下のように --dns-backend=BIND9_DLZ を指定します。

/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 \
--realm=SAMBA40AD2.SAMBA.LOCAL --domain=SAMBA40AD2 \
--adminpass=Password1 --dns-backend=BIND9_DLZ

BIND側の設定

今回は、BIND最新版の BIND-9.9.2-P1 をコンパイルしました。パッケージ付属のものを使う場合は、--with-dlopen オプション付きで configure されたものであることを確認する必要があります。

# /usr/local/bind/sbin/named -V
BIND 9.9.2-P1 built with '--prefix=/usr/local/bind' '--with-dlopen'
using OpenSSL version: OpenSSL 0.9.8o 01 Jun 2010

BIND 9.8 以降では、named.conf の options に以下の記載をいれておく必要があります。

options {
  ...
  tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
  ...
}

この dns.keytab ファイルは BIND の実行プロセスから読み取り可能になっている必要があります。

次いで、include などを用いて /usr/local/samba/private/named.conf の内容を挿入する必要があります。

この際、BIND のバージョンが 9.8 か 9.9 かによって、named.conf 内を参照して設定を変更する必要があります。

デフォルトは BIND 9.8 用になっていますので、BIND 9.9 を使用する場合は、BIND 9.8 用設定のコメントと BIND 9.9 用設定のコメントアウトを行う必要があります。

# This DNS configuration is for BIND 9.8.0 or later with dlz_dlopen support.
(中略)
# Uncomment only single database line, depending on your BIND version
#
dlz "AD DNS Zone" {
    # For BIND 9.8.0
#    database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so";

    # For BIND 9.9.0
    database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";
};

この設定を忘れると、以下のようなエラーメッセージが syslog に出力されます。

Feb  4 20:11:11 vm1 named[22249]: Loading 'AD DNS Zone' using driver dlopen
Feb  4 20:11:11 vm1 named[22249]: dlz_dlopen: incorrect version 1 should be 2 in '/usr/local/samba/lib/bind9/dlz_bind9.so'
Feb  4 20:11:11 vm1 named[22249]: dlz_dlopen of 'AD DNS Zone' failed

最後に、BIND を /usr/sbin 以外のパスにインストールした場合は、smb.conf で nsupdate command オプションを設定して、nsupdate コマンドの場所を明示的に指定しておく必要があります。

nsupdate commadn = /usr/local/bind/bin/nsupdate

あとは、普通に samba と named を起動すれば、動作しているはずです。以下のように host コマンドなどで SRV レコードや A レコードが参照できていれば、設定は成功です。

host -t A samba40-1.samba40ad2.samba.local.
samba40-1.samba40ad2.samba.local has address 192.168.1.35
# host -t SRV _ldap._tcp.samba40ad2.samba.local.
_ldap._tcp.samba40ad2.samba.local has SRV record 0 100 389 samba40-1.samba40ad2.samba.local.

参考


2013年03月06日 [長年日記]

[Samba]Samba4 の CIFS Proxyモジュール

古い Samba のメーリングリストにあった [Samba] CIFS proxy with samba4 という記事をみていて知ったんですが、Samba4 には CIFS のプロキシを行う機能がついているっぽいです。

GitHUB から使い方を参照できます。

だれか試した人いませんかー

追記

というのもゲイがないので、試してみました。とりあえず動作させればということで、

# samba-tool domain provision --server-role-standalone --domain=HOME --realm=HOME.MONYO.COM --adminpass=Password1

とかして、それに CIFS Proxy の設定を加え、以下のようなあやしぃ smb.conf を作ってみましたです。

# Global parameters
[global]
        workgroup = HOME
        realm = HOME.MONYO.COM
        netbios name = SQUEEZE32-02G
        server role = standalone server
        passdb backend = samba_dsdb
        dns forwarder = 192.168.1.15
        server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, dns, smb
        dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc

[cifsproxy]
        ntvfs handler = cifs
        cifs:server = madoka
        cifs:user = monyo
        cifs:password = DamePass
        cifs:domain = MADOKA
        cifs:share = tmp

クライアントからアクセスしたところをパケットキャプチャして、ちゃんとプロキシできていることは確認できました。

CIFS-PROXYが動作している様子

よく見ると、通信が CLIENT - CIFS-PROXY - SERVER 経由で行われていることが確認できます。

参考

[Samba] Samba4 の mssntp 機能

Step 10: Configure NTP (Optional) とかを参考にしながら、Samba4 で Windows 特有の認証 NTP の設定を行ってみました。

といっても、基本はドキュメント通りに設定すれば問題ないです。

唯一はまったのが、NTP on Samba4に記載のあるディレクトリのパーミッションで、これを正しく設定したら問題なく動きましたということで、本家の Wiki にも追記しておきました

確認方法がわからず苦慮しました、ということでパケットキャプチャして確認してみたです。

普通のNTPのパケット

普通のNTPのパケット

認証 NTPのパケット

認証 NTPのパケット
※パケット末尾に「Key ID」や「Message Authentication Code」といった情報が付加されていますです。

参考


2013年03月18日 [長年日記]

[Samba] Samba3ドメインからSamba4ドメインへの移行

Samba4/samba-tool/domain/classicupgrade/HOWTOあたりを参考にして、LDAPバックエンドで構成したSamba3ドメインからSamba4のActive Directoryへの移行をちょっと試してみました。

手順的には、ドキュメント通りに行えば大丈夫です。 以下簡単に書きます。

事前準備
  • Samba4サーバで、OpenLDAPサーバをインストールの上、デーモンを停止しておく
  • Samba4サーバで、Samba4を--with-ldapオプションでビルドしておく
実行
  • Samba3サーバで、LDAPデータベースをエクスポートする
# slapcat > backup.ldif
  • ファイル群をSamba3サーバからSamba4サーバへコピーする
samba4# scp root@ip.to.samba3.machine:/path/to/backup.ldif /path/to/samba3
samba4# scp -r root@ip.to.samba3.machine:/etc/ldap /path/to/samba3/ldap
samba4# scp -r root@ip.to.samba3.machine:/var/lib/samba /path/to/samba3/tdbfiles
samba4#scp /etc/samba/smb.conf /path/to/samba3/etc
  • Samba4サーバでLDAPデータベースをインポートする
(OpenLDAPサーバ停止)
samba4# cd /etc && mv ldap ldap.orig && mv /path/to/samba3/ldap ./
samba4# slapadd -l /root/backup.ldif
samba4# chown openldap:openldap /var/lib/ldap -R
samba4# chown openldap:openldap /etc/ldap -R
(OpenLDAPサーバ起動)
  • Samba4サーバ上でprovision開始
 samba4# /usr/local/samba/bin/samba-tool domain classicupgrade --dbdir=/path/to/samba3/tdbfiles  --use-xattrs=yes  --realm=myname.org /path/to/samba3/etc/smb.conf

以下実行例です。

# /usr/local/samba/bin/samba-tool
domain  classicupgrade --dbdir=/usr/local/samba/tmp/samba --use-xattrs=yes --realm=SAMBADOM.LOCAL /usr/local/samba/tmp/smb.conf
Reading smb.conf
Provisioning
Exporting account policy
(中略)
User root has been kept in the directory, it should be removed in favour of
the Administrator user
Adding users to groups
Setting password for administrator
Administrator password has been set to password of user 'root'

手元の環境では、移行前のSamba3ドメインに参加していたクライアントで、DNSサーバのIPアドレスをSamba4ドメインを構築したSamba4サーバに設定しなおした状態で、正しくログオンできることを確認しました。

システムのプロパティから確認したドメイン名も、勝手にSamba3形式のNetBIOS名ベースのものから、Samba4のFQDN形式に変わってました。

注意

データベースが意図しない状態になっているといった理由で、provisionコマンドが失敗することが多々あるようです。手元で試したときは信頼関係のユーザ(移行はサポートされていない)が存在していたため、一度エラーで止まりました。ということで移行リハ必須といったところでしょうか。

後、SIDが重複しているとか、長く運用しているといろいろ不整合が発生していることが多いとか、いろいろ書いてあります。

それから、ドキュメントにも書いてありますが、Samba4サーバでは、Samba3が動作している必要はありません。必要なファイルだけ持ってくれば、移行は進められます。ただし、OpenLDAPサーバは動作させておく必要があります。


2013年03月20日 [長年日記]

[コンピュータ]キャッシュバッファがメモリを食い尽くす?

どうも最近以下のKBの状態に陥っているような気がしてきてます

Windows 7なので、関係ないはず、と思ってたんですが、以下をみるとそうでもないということで orz

ということで、上記にもリンクがあった Dynamic Cache Service を入れてみようとしたんですが、以下のように言われてサービスを開始できないので……

画像の説明

大してプログラム書けないんですが、SetSystemCacheFileSize() を呼び出すプログラムを作ってみました。UNIX の C 言語しかわからない素人なんで、全然 Windows っぽくないし、センスがないコードですが、個人で使うだけ、ということで。

一応以下のような感じで動いてます。

画像の説明

とりあえず、これで様子をみるかなぁと。

とりあえず、ソースコードもアップしておきました。

Visual Studio 2010 C++ Express でビルドしてます。

[Debian] Debian GNU/Linux 0.93R6 を入れてみた

なんか懐かしくなって、入れてみたです。

初期画面

フロッピーディスクからしかインストールできません。ブートディスク2枚、/ファイルシステム用ディスクの計3枚が必要です。

画像の説明

起動画面

ちゃんと、Version 0.93 Release6 の文字があります。 画像の説明

ログイン画面

ディスク容量は12MB程度しか使ってませんが、一応bashが入っててちゃんと動きますし、telnetを入れればリモートからもログインできます。

aptはないですが、dpkgコマンドはすでに存在してました。カーネルのバージョンは 1.2.13

画像の説明

その他いくつか画面キャプチャをとってます。


2013年03月21日 [長年日記]

[Samba]Solaris 11 で Samba 3.6.13 をビルドする

以下のオプションをつけることで --with-ads を有効にした状態でビルドできました。

export LIBS="/usr/lib/libldap-2.4.so -lgss"
export CPPFLAGS="-I/usr/include/kerberosv5"

1行目の前半設定がないと、configure 時に Solaris デフォルトの LDAP ライブラリが使われるため、ldap_initialize() 関数がありませんというエラーになってしまいます。

2行目の設定がないと、configure が krb5.h を見つけることができないため、やはりエラーで止まってしまいます。

1行目の後半の設定がないと、今度はリンクの際に GSSAPI 関連のライブラリがないと言われて止まってしまいます。

なお、以下のパッケージを追加インストールしています。

  • developer/gcc-45
  • system/library/iconv/unicode

以下のパッケージも必要だと思いますが、インストール済でした。

  • library/openldap
  • service/security/kerberos-5
余談

パッケージに含まれるファイルの一覧は、以下のようにして確認できました。

pkg contents パッケージ名

Copyright (C) 2003-2015 TAKAHASHI, Motonobu
webmaster@monyo.com