• Ubuntuに関連したハード、ソフトの備忘録サイトです

Ubuntu14.04LTS(その04)ーSOHO用Sambaサーバーの構築【追記】


以前から気になっていましたSOHO用Sambaサーバーを構築してみます。Ubuntu14.04LTSでは、Samba4.1.6が搭載されており、こちらはSamba3/4双方に対応しているようです。SOHO用ならSamba3で充分ですが、何となく古い。ということで、Samba3はNTドメイン用のドメイン・コントローラー(DC)、Samba4はアクディブ・ディレクトリ用のDCの構築に挑戦してみました。ADDCの構築にあたっては、Samba内蔵DNSはあまり実績を聞かないので、既存のBIND9を使って構築してみました。

※本投稿記事につきましては、Sambaのオリジナル・パッケージ版とコンパイル版が混じって分かりにくくなっています。後ほど、コンパイル版で、①内蔵DNSを使う場合②フラットファイルを使う場合−をそれぞれ投稿しますので、この投稿記事は無視してください。大変、失礼いたしました。

【1】環境 

  • ハードはCPUにAMD FX-8350、マザーボードにASRockの990FX Extreme4。メモリは32ギガバイト(何故か、よく止まります)。Ubuntu14.04LTSはサーバー版をインストール後、sudo apt-get install ubuntu-desktopでデスクトップ化。
  • 回線はマンションタイプBフレッツ
  • ネットワークは192.168.1.0め24
  • ルーターのアドレスは192.168.1.1
  • Samba/DNSサーバーのIPアドレスは192.168.1.2。
  • 外部に対するWordpressのWebサーバーのIPアドレスは192.168.1.5
  • その他、理由があってUbuntu14.04LTSインストールマシンを3台設置(AMD系1台、Intel系2台)。
  • プリンターはBrotherの有線レーザープリンターと無線LAN対応インクジェットプリンター(ハードにUSB接続)
  • Windows7の64ビット版はVirtualBoxでインストール。

zu04_s

【2】NT DCの構築

NT DCの構築については特記すべき点があり、Windows7ではレジストリへのキーの追加が必要だということです。詳細はこちらのサイト(slashdot.jp/のサイト)に記してありますから、踏襲すればよいです。そのうえで、高橋元信さんの「Samba実践入門」を参考にしました。$ apt-get install samba samba-common smbclientで関係ソフトをインストールした上で、/etc/sambaのsmb.confをsmb-original.confに名前変更。

そのうえで、次のようなsmb.confを書きました。 

[global]
    dos charset = CP932
    unix charset = UTF-8
    
    workgroup = IT-ISHIN.COM
    # workgroup = SAMBA
    security = user
    domain logons = yes
    passdb backend = tdbsam
	encrypt passwords = yes
    
    os level = 32
    domain master = auto
    prefered master = auto
    local master = yes
    
    # Setting of Wins Server
    wins support = yes
    
    # auto creation of UNIX user
    add machine script = /usr/sbin/useradd -d /dev/null -s /bin/false %u
    
    # Setting of Management User
    admin users = Administrator
    
    # Effective User Manager
    add user script = /usr/sbin/useradd -m '%U'
    delete user script = /usr/sbin/userdel -r '%U'
    rename user script = /usr/sbin/usermod -l '%unew' '%old'
    add group script = sh -c "/user/sbin/groupadd '%g';getent group '%g' | awk -f: '{print \$3}'"
    delete group script = /usr/sbin/groupdel '%g'
    add user to group script = /usr/bin/gpasswd -a '%u' '%g'
    delete user from group script = /usr/bin/gpasswd -d '%u' '%g'
    set primary group script = /usr/sbin/useradd -g '%g' '%u'
    
    # Synchronization
    unix password sync = yes
    pam password change = yes
    
[neglogon]
    comment = Net Logon Share
    path = /var/lib/samba/netlogon
    browseable = yes
    # writeable = no
    writeable = yes
    write list = @Administrators
    
[public]
    path = /var/lib/samba/public
    writeable = yes
    profile acls = yes

こうしておいて、VirtualBox上のWindows7 ProfesssionalをNT DCに参加させればよいです。次の図のように入力すると良いです(後ほど、追加)。

【3】AD DCの構築

まず、大事なことはKVM関係のパッケージを一掃しておきます。理由は良く分かりませんが、NT_STATUSなんとかエラーというのが頻発してしまいます。

(1)AD DC構築の前に
うまく行かない場合に備えて、Samba3の設定をバックアップしておくべです。Sambaの設定ファイルは、/etc/samba, /var/lib/sambaディレクトリに作成されますので、/etc/samba3、/var/lib/samba3を作成し、そちらに $ sudo cp -a /etc/samba/* /etc/samba3/、そして、$sudo cp -a /var/lib/samba/* /var/lib/samba3としてバックアップをとっておきましょう。なお、Sambaの再インストールはsynapticを使って、設定ファイルごと削除する必要があります。コマンドラインでやるなら、$ apt-get purge samba samba-commonということになるでしょうか。

次に、必要と思われるパッケージをインストールしておきます。

libattr1-dev libacl1-dev python-dev krb5-user dnsutils libpopt-dev

krb5-userのインストール時に、レルム名とケルベロス関係のサーバー名2つを聞かれますが、レルム名はit-ishin.com、サーバー名はいずれもubuntu01.it-ishin.comとしておきました。なお、krb5-admin-server、krb5-kdc、krb5-configも入れましたが、Samba4をコンパイルしてインストールした際には、インストールしてません。恐らく、要らないと思いますが、Kerberos認証とかOpenldapについて時間をとって勉強してみます。まあ、Linuxはイントラネット構築のシステムとしても強力なんですね。(^^ゞ。

 (2)samba-tool domain provisionの実行(BIND9_FLATFILEの選択)
$ sudo samba-tool domain provisionで、いろいろ設定してくれます。良くは分かりませんが、レルム名でDNSドメイン名のit-ishin.com、ドメイン名はそのままエンター、DNSはInternalではなく、BIND9_FLATFILEを選択します。なお、/etc/samba/smb.confを/etc/samba/smb-original.confなどに変更しておきませんと、スクリプトの実行がストップします。それと、samba-toolではAD DCの機能レベルは2003くらいに固定されますので、少なくとも2008R2レベルまで引き上げる必要があります。後述予定。

(3)実行結果
重要なのは、スクリプトが生成する/var/lib/sambaの中身です。/var/lib/samba/private以下が、環境ごとに生成される独自ファイルです。sudo root:bind chown -R /var/lib/samba/private/dnsでbindがアクセスできるようにしておく必要があります。

michiaki@ubuntu01:/var/lib/samba$ tree
.
├── account_policy.tdb
├── group_mapping.tdb
├── ntp_signd [error opening dir]
├── printers
│   ├── COLOR
│   ├── IA64
│   ├── W32ALPHA
│   ├── W32MIPS
│   ├── W32PPC
│   ├── W32X86
│   ├── WIN40
│   └── x64
├── private
│   ├── dns
│   │   └── it-ishin.com.zone
│   ├── dns.keytab
│   ├── dns_update_list
│   ├── hklm.ldb
│   ├── idmap.ldb
│   ├── krb5.conf
│   ├── ldap_priv [error opening dir]
│   ├── ldapi
│   ├── named.conf
│   ├── named.conf.update
│   ├── named.txt
│   ├── passdb.tdb
│   ├── privilege.ldb
│   ├── randseed.tdb
│   ├── sam.ldb
│   ├── sam.ldb.d [error opening dir]
│   ├── schannel_store.tdb
│   ├── secrets.keytab
│   ├── secrets.ldb
│   ├── secrets.tdb
│   ├── share.ldb
│   ├── smbd.tmp
│   │   └── msg [error opening dir]
│   ├── spn_update_list
│   └── tls [error opening dir]
├── public
├── registry.tdb
├── share_info.tdb
├── sysvol [error opening dir]
├── usershares [error opening dir]
├── var
├── winbindd_privileged [error opening dir]
├── wins.dat
└── wins.tdb

22 directories, 26 files

次に/et/samba/smb.confの中身です。

# Global parameters
[global]
	workgroup = IT-ISHIN
	realm = IT-ISHIN.COM
	netbios name = UBUNTU01
	server role = active directory domain controller
	server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate

[netlogon]
	path = /var/lib/samba/sysvol/it-ishin.com/scripts
	read only = No

[sysvol]
	path = /var/lib/samba/sysvol
	read only = No

[public]
	path = /var/lib/samba/public
	read only = No

最後の[public]は自分で付け加えました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA