このブログを検索

2014-10-29

samba4.0.6→4.1.11をインストール

結論から書きますと、4.0.6→4.1.11へのアップグレードは失敗で、
結局1から入れなおしました。
結構試行錯誤しましたが英語圏の情報含めて色々試してダメでした。

で、実施してからだいぶ経ってからのメモ書き復元のため、矛盾があったりするかもしれない超メモ書きです。

まず、Ubuntuをアップグレードしました。?(忘れた)→14.04.1
次にsamba4がどうなっているか確認

$ sudo chkconfig --list samba4
sudo: chkconfig: command not found
chkconfigが動かなくなっていたので代替アプリをインストール

$ sudo aptitude install sysv-rc-conf
WARNING: untrusted versions of the following packages will be installed!

Do you want to ignore this warning and proceed anyway?

IPV6無効
$ sudo vim /etc/sysctl.conf
追加
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

DNSサーバー指定を元に戻す
$ sudo vim /etc/resolvconf/resolv.conf.d/base
nameserver XXX.XXX.XXX.XXX # gatewayを指定

反映
$ sudo resolvconf -u
 前回同様不都合なサービスを外す
$ sudo update-rc.d -f slapd remove
$ sudo shutdown -r 0
$ ping www.google.com
$ cd
$ wget http://ftp.samba.org/pub/samba/samba-4.1.11.tar.gz
$ tar -zxvf samba-4.1.11.tar.gz
$ cd samba-4.1.11
$ ./configure
$ sudo /etc/init.d/samba4 stop
$ cd /usr/local; sudo tar cvfz samba-4.0.6.tar.gz ./samba
$ cd
$ cd samba-4.1.11
$ sudo make && sudo make install

とりあえず手動で動作確認
$ sudo /usr/local/samba/sbin/samba
$ ps aux |grep samba

ちなみにmakeを飛ばすと
bin/asn1_compileに関するエラーが出る

DNSサーバー指定をAD用に戻す
$ sudo vim /etc/resolvconf/resolv.conf.d/base
********
$ sudo resolvconf -u
$ sudo shutdown -r 0
$ tail -n 100 /var/log/syslog
Sep  6 14:31:52 xxxx samba[1408]: [2014/09/06 14:31:52.772588,  0] ../lib/util/util.c:161(file_check_permissions)
Sep  6 14:31:52 xxxx samba[1408]:   invalid permissions on file '/usr/local/samba/private/tls/key.pem': has 0644 should be 0600
Sep  6 14:31:52 xxxx samba[1408]: [2014/09/06 14:31:52.773858,  0] ../source4/lib/tls/tls_tstream.c:1125(tstream_tls_params_server)
Sep  6 14:31:52 xxxx samba[1408]:   Invalid permissions on TLS private key file '/usr/local/samba/private/tls/key.pem':
Sep  6 14:31:52 xxxx samba[1408]:   owner uid 0 should be 0, mode 0644 should be 0600
Sep  6 14:31:52 xxxx samba[1408]:   This is known as CVE-2013-4476.
Sep  6 14:31:52 xxxx samba[1408]:   Removing all tls .pem files will cause an auto-regeneration with the correct permissions.
Sep  6 14:31:52 xxxx samba[1408]: [2014/09/06 14:31:52.776128,  0] ../source4/ldap_server/ldap_server.c:940(ldapsrv_task_init)
Sep  6 14:31:52 xxxx samba[1408]:   ldapsrv failed tstream_tls_params_server - NT_STATUS_CANT_ACCESS_DOMAIN_INFO
Sep  6 14:31:52 xxxx samba[1408]: [2014/09/06 14:31:52.777057,  0] ../source4/smbd/service_task.c:35(task_server_terminate)
Sep  6 14:31:52 xxxx samba[1408]:   task_server_terminate: [Failed to startup ldap server task]
Sep  6 14:31:52 xxxx samba[1372]: [2014/09/06 14:31:52.808193,  0] ../lib/util/become_daemon.c:136(daemon_ready)
Sep  6 14:31:52 xxxx samba[1372]:   STATUS=daemon 'samba' finished starting up and ready to serve connectionssamba_terminate: Failed to startup ldap server task


$ sudo rm /usr/local/samba/private/tls/*.pem
$ sudo /etc/init.d/samba4 start
$ ps aux |grep samba


4.0.X系からのUpdateならDBの修復が必要らしい
$ sudo /etc/init.d/samba4 stop
# sudo /usr/local/samba/bin/samba-tool dbcheck --cross-ncs --reset-well-known-acls --fix
# sudo /usr/local/samba/bin/samba-tool ntacl sysvolreset
# sudo /usr/local/samba/bin/samba-tool dbcheck --cross-ncs --fix
ref: https://wiki.samba.org/index.php/Updating_Samba

$ sudo /etc/init.d/samba4 start
$ ps aux |grep samba
立ち上がらなくなった
どうもファイルのOwnerがおかしい気がするので全変更

$ sudo chown root:root /usr/local/samba -R
$ sudo /etc/init.d/samba4 start
$ ps aux |grep samba
立ち上がった


$ /usr/local/samba/bin/smbclient -L localhost -U%
OS=と Server=が空だけどとりあえず動いている?

$ /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[MYDOMAIN] OS=[] Server=[]

以前は空ではなかったので何かおかしい
一度設定ファイルがない状態でsamba4をインストールし、
smb.confの初期値で試したところちゃんと出た。

smb.confの初期値と移行したものを見比べると
globalが全然違うっぽい。

そこで、初期値の状態のものをひっぱってきて、
必要な設定を改めて施した。

初期値+provisionしたもの

# Global parameters
[global]
        workgroup = MYDOMAIN
        realm = MYDOMAIN.LOCAL
        netbios name = HOSTNAME
        server role = active directory domain controller
        dns forwarder = 192.168.1.1

[netlogon]
        path = /usr/local/samba/var/locks/sysvol/mydomain.local/scripts
        read only = No

[sysvol]
        path = /usr/local/samba/var/locks/sysvol
        read only = No


$ /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.1.11]

        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk    
        sysvol          Disk    
        IPC$            IPC       IPC Service (Samba 4.1.11)
・・・略・・・
結果が実行毎に変わるけどなんだろう・・・

その後いろいろ確認したけどどうもおかしく、直せない。
この状態でファイルサーバー越しにファイルを作成したりするとOwnerが3000000になる。
アンインストールしてからの再インストールをすることにした。

DNS設定を再び暫定に
$ sudo vim /etc/resolvconf/resolv.conf.d/base
nameserver ルーターIP
のみに変更

$ sudo resolvconf -u
samba関係をアンインストール
$ sudo aptitude remove smbd
$ sudo aptitude remove samba
$ sudo aptitude remove winbind libnss-winbind
$ sudo aptitude remove slapd ldap-utils


https://wiki.samba.org/index.php/Samba_4/OS_Requirements
$ sudo aptitude install build-essential libacl1-dev libattr1-dev \
   libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev \
   python-dnspython gdb pkg-config libpopt-dev libldap2-dev \
   dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl
$ sudo aptitude install slapd ldap-utils
$ sudo /etc/init.d/slapd stop
$ sudo update-rc.d -f slapd remove
$ cd
$ wget http://ftp.samba.org/pub/samba/samba-4.1.11.tar.gz
$ tar -zxvf samba-4.1.11.tar.gz
$ cd samba-4.1.11
$ ./configure
$ sudo make && sudo make install
$ sudo aptitude install smbd
$ sudo aptitude install winbind libnss-winbind
$ sudo vim /etc/init/smbd.conf
start on ・・・ という行を#でコメントアウト

$ sudo vim /etc/resolvconf/resolv.conf.d/base
元に戻す

$ sudo shutdown -r 0

$ sudo /usr/local/samba/bin/samba-tool domain provision
$ sudo /etc/init.d/samba restart
$ ps aux|grep samba

とりあえず動作確認
$ ps aux |grep samba


$ /usr/local/samba/bin/smbclient -L localhost -U%
4.0.Xから上書きした際は結果が不定だったが
いろいろアンインストール→いろいろUpgrade
してからのsambaクリーンインストールで安定した

$ sudo host -t SRV _ldap._tcp.mydomain.local 127.0.0.1

$ kinit administrator@MYDOMAIN.LOCAL
以前と異なりパスワードを求められた

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@MYDOMAIN.LOCAL


$ sudo /usr/local/samba/bin/samba-tool user setexpiry Administrator --noexpiry
$ /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%'パスワード' -c 'ls'
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.1.11]
  .                                   D        0  Sun Sep  7 19:21:26 2014
  ..                                  D        0  Sun Sep  7 19:22:00 2014

                37289 blocks of size 524288. 29480 blocks available





ref: https://wiki.samba.org/index.php/Setup_a_Samba_AD_Member_Server

以前のファイルを除去
$ sudo mv /lib/x86_64-linux-gnu/libnss_winbind.so /var/tmp/.
$ sudo mv /lib/x86_64-linux-gnu/libnss_winbind.so.2 /var/tmp/.
今回ビルドしたものを入れる
$ sudo ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so
$ sudo ln -s /lib/x86_64-linux-gnu/libnss_winbind.so /lib/x86_64-linux-gnu/libnss_winbind.so.2
$ sudo ldconfig
$ /usr/local/samba/bin/wbinfo -p
Ping to winbindd succeeded

$ getent passwd
MYDOMAIN\Administrator:*:0:100::/home/MYDOMAIN/Administrator:/bin/bash


ドメインレベルを上げる
$ sudo /usr/local/samba/bin/samba-tool domain level raise --domain-level=2008_R2
$ sudo /usr/local/samba/bin/samba-tool domain level show
$ sudo /usr/local/samba/bin/samba-tool domain level raise --forest-level=2008_R2
$ sudo /usr/local/samba/bin/samba-tool domain level show
移動プロファイル設定
$ mkdir -p /home/MYDOMAIN/profiles
$ chmod 1777 /home/MYDOMAIN/profiles
$ sudo vim /usr/local/samba/etc/smb.conf
[global]
   ‥‥
   logon path = //%L/profiles/%U
   ‥‥
[profiles]
   path = /var/samba/profiles
   browseble = no
   read only = no
   profile acls = yes
   create mask = 0600
   directory mask = 0700

$ sudo /etc/init.d/samba4 restart

Winをドメイン参加させてAdministratorでログオン

リモートサーバー管理ツール
http://www.microsoft.com/ja-jp/download/details.aspx?id=39296

[コントロールパネル] → [プログラム] → [Windowsの機能の有効化または無効化]
リモートサーバー管理ツールにチェックしてOK

コントロール パネル
システムとセキュリティ
管理ツール
Active Directory ユーザーとコンピュータ

Usersにいる対象アカウントのプロパティを開く
プロファイルのプロファイルのパスに
\\サーバー名\profiles\%USERNAME%
を入力して適用
※もしかしたらDomain Adminsにいれているとだめかも。