オレンジのトップページ

2015年12月3日木曜日

Samba4 - [PATCH] LastLogon and LastLogonTimestamp

samba4で最終ログオン日時のタイムスタンプを記録するパッチが作成されたようです。

これでlastコマンドで取得しなくてもsamba-ADで完結しますが、lastコマンド経由で取得する方法もあるのでどっちが便利かな。


From: Garming Sam <garming@catalyst.net.nz>
To: samba-technical <samba-technical@lists.samba.org>
Cc: rb@sernet.de
Subject: [PATCH] LastLogon and LastLogonTimestamp
Date: Thu, 3 Dec 2015 18:03:02 +1300
Sender: "samba-technical" <samba-technical-bounces@lists.samba.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.3.0

Hi,

Attached the this mail are some patches originally written by Douglas
Bagnall (who is currently off and about) to implement the
lastLogonTimestamp attribute. In addition, some further tests were added
to the password lockout tests to check the update of lastLogon and
lastLogonTimestamp. Douglas had them running and passing against 2012R2.

I tidied them up slightly from Douglas, but they're otherwise unchanged.
Hopefully they are self-explanatory enough and well commented from
Douglas' analysis of the behaviour.

Please review and push.


http://git.catalyst.net.nz/gitweb?p=samba.git;a=shortlog;h=refs/heads/lastlogon-review

git://git.catalyst.net.nz/samba.git    lastlogon-review


Thanks,

Garming Sam

2015年11月3日火曜日

virt-managerに怒られない debian 8 / 9 での bonding設定

proxmox-VE4.0が出たので試してみたけど、やっぱりなんかWEB-GUI重いし、3.xの時ちょっといじると反応が無くってあせった嫌な思い出がよみがえる。これなら 素のdebian 8 / 9 の virt-manager でもいいんじゃない?

よーしじゃぁ管理LANの方はbondingして帯域増やしちゃうぞ。って debian 7 のようにbondingを設定すると、virt-managerの「ネットワークインターフェース」画面からネットワークアダプタが消えるしネットワークをさわろうとするとエラーが出て怒られた。libvirtdがネットワークをハンドリングできてないみたいだ。

おっかしーなぁ。概ね公式ドキュメントの通りに設定するとうまくいったのでメモ。
https://wiki.debian.org/Bonding

まず環境はdebian 9 (Stretch / sid )で、bondingのモードは4。
つまり802.3adのLACPで、例では2つのネットワークカードを束ねている。


手順

1.パッケージの導入
aptitude install ifenslave

2./etc/modulesに追加する
echo "bonding" >> /etc/modules
echo "mii" >> /etc/modules

3./etc/network/interfaces を編集。
#ここから
auto lo
iface lo inet loopback

auto bond0
     iface bond0 inet static
     address 192.168.0.4
     gateway 192.168.0.254
     network 192.168.0.0
     netmask 255.255.255.0
     bond-mode 4
     bond-miimon 100
     bond-downdelay 200
     bond-updelay 200
     bond-lacp-rate 1
     slaves eth0 eth1
     dns-nameservers 192.168.0.1
     dns-search yourdomain.net
#ここまで


インタフェースの再起動
/etc/init.d/networking restart

だけでは切り替わらないので、OS再起動で認識。
接続するスイッチは、LACPADをショート(1秒)に設定。


debian側から動作チェック。
パラメータを間違えるとデフォルトのbarance-rrで立ち上がるから802.3adになってることを確認。
cat /sys/class/net/bond0/bonding/mode
cat /proc/net/bonding/bond0



ポイントは2つ
・/etc/modprobe.d/bonding.conf を作ってはいけない。
このファイルでbondingのデフォルト値が設定できるのだけれども、作らないでbondingパラメータはauto bond0セクションで指定する。

・/etc/network/interface で、auto bond0セクションでslaves eth0 eth1とする。auto eth0セクションとauto eth1 セクションを作ってはいけない。



まとめ
今回bondingしたのは管理LAN側に使う。

仮想マシン側には別途ネットワークカードを追加するかしてそいつで「ネットワークインターフェース」画面でVLAN作ってmacvtapで繋げばおしまい。管理LANと仮想マシンに兼用なんかしたらパフォーマンス落ちるに決まってるからそんなことはしない。ラックサーバだと最初からネットワークが4つ付いてたり、SR-IOVに対応していることもあるし。

勢いで昨年 ebayでI350-T2とかT4買ったんだけど、SR-IOVのドライバ導入面倒なんで放置していたらアマゾンジャパンで1万円ちょっとで買える値段になっていてショックだ。安物カードを仮想マシンの台数分買ったほうが良かったかもね。

Fedora 23 まとめ

日本語フォルダ 英語フォルダ名に変更 $ LANG=C xdg-user-dirs-gtk-update


IPA日本語フォント2つ
http://ipafont.ipa.go.jp/node26#jp

    IPAex明朝 (Ver.003.01)     ipaexm00301.zip
    IPAexゴシック(Ver.003.01)    ipaexg00301.zip


Migu日本語フォント4つ

http://mix-mplus-ipa.sourceforge.jp/download.html
>オススメを挙げます。

    「テキストエディター表示」に Migu 1M(等幅)
    「印刷物やプレゼン資料」に MigMix 1P(プロポーショナル)
    「ウェブブラウザー表示」はお好みで、MigMix 1P(プロポーショナル) や Migu 1C(プロポーショナル) などをどうぞ。
この3つに加えて MacOSのCode2エディタに採用されたという、Migu-2M(等幅) の合計4つを入れる。


Syncthing で複数PC/androidで同期 インストーラがないので、バイナリをダウンロードして、ホームに置き、gnome3に自動実行を登録する。

手順
http://www.fedoraonline.se/how-to-manage-startup-applications-in-gnome-3/
1. Copy from /usr/share/applications the .desktop file of the application into $HOME/.config/autostart
 dropboxの雛形をコピーしてきて、syncthingにして。
2. Edit the .desktop file . Add the following line:
 X-GNOME-Autostart-enabled=true
を最後に追加。

出来上がった ~/.config/autostart/syncthing.desktop の内容はこのとおり
[Desktop Entry]
Name=syncthing
GenericName=File Synchronizer
Comment=Sync your files across computers and to the web
Exec=/home/hogehoge/syncthing -no-browser
Terminal=false
Type=Application
Icon=syncthing
Categories=Network;FileTransfer;
StartupNotify=false
Name[ja_JP]=syncthing.desktop



firewall-configが 入ってないので入れる。
永続。を選んで、サービスを追加。登録するポートはこのとおり。入力したら使用するゾーンで、DropboxとSyncthingのサービスにチェックする。
Dropbox
 tcp/udp 17500
Syncthing
 tcp22000
 udp21025


Windowsのリモートデスクトップ用クライアント
remote-viewer
vncviewer



screen をスイッチのメンテナンスに使うのに入れておく。
.screenrcに
termcapinfo xterm* ti@:te@
と書いてスクロールバックを有効にする。
使う時は
screen /dev/ttyUSB0 9600

tftp-sever

(f21からsystemd経由になったので、xinetdはいらない)
ファイルは/var/lib/tftpbootに置き
setenforce 0
iptables -F
service tftpd restart


Firefoxのretinaハイレゾディスプレイ対策
http://askubuntu.com/questions/487032/adjust-firefox-and-thunderbird-to-a-high-dpi-touchscreen-display-retina
about:config で入って
layout.css.devPixelsPerPx を調整する。
13インチのノートパソコン 2560x1440では 2
21インチの1920x1024デスクトップモニタでは 1.3



ブラウザー epiphany
yum install epiphany

設定はこちらを参考にした。 https://forums.ubuntulinux.jp/viewtopic.php?id=10394)
フォントサイズは12くらい。

次の手順でプロポーショナルなMigu 1Cフォントに変更すると綺麗。
編集→設定→フォントとスタイル→カスタムスタイルシーツを使用→スタイルシートの編集

BODY , A:active,A:hover,A:link,A:visited,P,DIV,SPAN,H1,H2,H3,H4,H5,FONT,CODE,B, SMALL,STRONG,EM,CAPTION,TD,UL,U,li,PRE,TEXTAREA,INPUT,OPTION,SELECT,LEGEND,LABEL,FIELDSET,FORM,DD,DT,BUTTON,SCRIPT,IFRAME,JAVASCRIPT

{FONT-FAMILY:'Migu 1C' !important;}


Firefoxのフォントも変更
設定>コンテンツ>詳細設定
 プロポーショナル serif(デフォルト)
 明朝体 sans-serif(デフォルト)
 ゴシック体 Migu 1C
 等幅 Migu 1M


ターミナル・メールソフトのフォントも変更する。等幅のMigu 1Mを指定


メールソフト sylpheed/Clawsmail/Thunderbird。IMAPで使う場合Thunderbirdの設定がスタンダードっぽい。
yum erase evolution
yum install sylpheed


エディタ vim-X11
yum install vim-X11


Adobe Flash
インストーラをサイトからダウンロードしインストールした後に
yum install flash-plugin



RPMFusionレポジトリ
トップページからConfigurationページに移動し、freeとnonfreeをインストール。


Javaプラグイン
最初からopen-jdk版のjavaとicedtea-webプラグインが入っているが、ブラウザでjavaを使う必要がなければ消す。



mp3とかyoutubeとか
http://fedorakenken.doorblog.jp/archives/51707259.html
yum install gstreamer-ffmpeg gstreamer-plugins-ugly gstreamer-plugins-bad \
gstreamer-plugins-bad-free-extras \
gstreamer-plugins-bad-nonfree


GNOME3のカスタマイズ
yum install gnome-tweak-tool としてから、拡張機能→GONE Shell 拡張機能をインスト 「他の拡張機能をインストールする」をクリックすると https://extensions.gnome.org/ がブラウザで開くので、Top iconsを入れる。


rc.localを使えるように
/etc/rc.d/rc.local を作って実行権を与える


SSDはマウントオプションを追加しTrimを有効にする。以下の文書にほぼお同じ内容のガイドがある
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/newmds-ssdtuning.html#ssddeploy
https://docs.fedoraproject.org/en-US/Fedora/14/html/Storage_Administration_Guide/newmds-ssdtuning.html
http://antonakoglou.com/2011/05/29/fedora-15-tweaks-ssd/
http://www.maruko2.com/mw/CentOS/SSD

要約すると
* Trimに対応しているファイルシステムはRedhat 6.2からext4。6.4からXFS。

* swapパーティションは指定不要。
The Linux swap code will issue TRIM commands to TRIM-enabled devices,
and there is no option

* /sys/block/sda/queue/discard_granularity の値が0でなくSSDが対応していれば
/sys/block/device/queue/discard_max_bytes is not zero

* hdparm -I /dev/sda として
Commands/features:
 Enabled Supported:
     * Deterministic read data after TRIM
となっていれば対応している。
* マウント手順は
# mount -t ext4 -o discard /dev/sda2 /mnt

ということなので、対応していれば /etc/fstabを次のように修正する。
/dev/sdaX / ext4 discard,defaults
tmpfsを使うのも良い
none /tmp tmpfs defaults 0 0
none /var/tmp tmpfs defaults 0 0none /log tmpfs defaults 0 0



憩いの場レポジトリ
http://linux.ikoinoba.net/index.php?UID=1279543844 から、home_sawaa リポジトリを追加。憩いの場版 unzipは日本語ファイルの入ったzipが化けなくなって助かる。


グラフィックドライバを入れる RPMfusionのfreeとnonfreeを有効にした上で
nVIDIA
yum install kmod-nvidia
yum install akmod-nvidia

AMD Radeon
yum install kmod-catalyst
yum install akmod-catalyst

*F18からAMDのドライバはfglrxからcatalystに変わった



FirefoxでOpenGLアクセラレーション
グラフィックドライバを入れれば安定した。メニューから起動しただけでは有効にならないので、パラメータを与えてコンソールから起動する

[hogeuser@hogeserver ~]$ MOZ_ACCELERATED=1 MOZ_GLX_IGNORE_BLACKLIST=1 firefox

立ち上がったら about:support としてOpenGLが有効になっていればOK。

うまくいけばGNOMEのプログラムメニューに登録しておく。手順はこちら。
http://forums.fedoraforum.org/archive/index.php/t-272239.html

2015年5月28日木曜日

samba4 - ユーザの最終ログオン日時を取得する

ユーザアカウントのログオン日時がsamba4-ADの属性に記録されない。おかしいなーと思ってググると、本家samba-mlで Samba TeamのMatthieu Patou って人が

(May 8 2011)
not currently in Samba4:

* badPwdCount
* badPasswordTime
* lastLogon
* logonCount
* lastLogonTimestamp

って言っていた。それから4年経っているのに、結局対応できていないってことらしい。WindowsからADSIエディタを使って適当な値の日付を書き込みもできるけど、ユーザがログオンしても更新されない。加えて2008R2からはもうひとつ msDS-LastSuccessfulInteractiveLogonTime って属性も増えたらしいんけど、こちらには書き込みもできない。もちろんsamba4-ADの機能レベルは2008R2相当に上げてある。

ADSIエディタのキャプチャ。lastLogonTimestamp の値が(なし)になってる。


仕方ないので、OS側のwtmpxに書き出すことで代替してみる。サーバの何らかの共有資源アクセス時に発生する履歴になり、対話ログオン以外にPC自体が定期的に行うログオン認証も記録されるけれど、当該ユーザアカウントが使われているかどうかの確認には使える。

1.smb.conf に記述を追加
[global]
 utmp = Yes
 utmp directory = /var/log/sambalogon/

2.ファイルを作成
mkdir /var/log/sambalogon/
touch /var/log/sambalogon/utmpx (現在ログオン中のユーザ)
touch /var/log/sambalogon/wtmpx (ログオン履歴)

3.whoか、last -w -f でwtmpxを表示
lastはユーザ名が先頭8文字しか表示されないが -w をつけると全部出る。
utmpdumpコマンドもあるけどDebianには無いから。

実行
[root@ORANGESV sambalogon]# who wtmpx
ORANGE\shuichi smb/1278243650 2015-05-25 20:27 (192.168.xx.yyy)
ORANGE\shuichi smb/2794094097 2015-05-25 20:27 (192.168.xx.zz)
ORANGE\shuichi smb/3637964028 2015-05-25 20:28 (192.168.xx.zz)
ORANGE\TESTPC1$ smb/200977608 2015-05-25 20:35 (192.168.xx.zz)
ORANGE\shuichi smb/3949000150 2015-05-25 20:37 (192.168.xx.zz)
ORANGE\TESTPC1$ smb/1212155251 2015-05-26 20:24 (192.168.xx.zz)
ORANGE\TESTPC1$ smb/3336455472 2015-05-26 20:27 (192.168.xx.zz)

4.シェルスクリプトで整形
最終ログイン日付を使うようにソート。こんな感じ。
who wtmpx | awk '{print $3" "$4" "$5"\t"$1}'| sort -r -k 4 -k 1 | uniq -3 | sort -k 4

samba-ADが複数台あれば、それぞれのサーバのwtmpx を合計する。
wtmpxファイルのローティションと、ローティションしても過去のログオン履歴をおいかけられる
ようにすればOK。

IPアドレスも記録されているので、PC一覧のチェックにも使えて2度おいしい。

※ samba-4.2.1とsamba-4.2.2で確認

2015年2月14日土曜日

Samba4 - vfs objects = shadow_copy、wide links = yes を [global] に書くとエラー

いつのまにか実害なかったものの samba-tool ntacl sysvolcheck でエラーが出ていたのが、samba4のアップデートで詳しいエラーメッセージが表示されるようになって解決して一安心。

smb.confで[global]に

vfs objects = shadow_copy (シャドウコピー)
とか

wide links = yes (シンボリックリンク)

を書くと、sysvolフォルダでも上記のモジュールが有効になって、
samba-tool ntacl sysvolcheck
samba-tool ntacl sysvolreset

がエラーとなる。

正しい方法は、これらのパラメータは面倒でも必要な共有フォルダごとに書く。


、、、気がきかないなぁ、そもそも sysvolフォルダで指定してはいけないパラメータなんだったら、sambaプログラム側で sysvolフォルダで勝手に無効にしてくれたらいいのに。


実行例
vfs objects = shadow_copy を[global]セクションに書いて、 samba-tool ntacl sysvolcheck を実行した場合のエラー
.
.
.
ERROR(<class 'samba.provision.ProvisioningError'>): uncaught exception - ProvisioningError: VFS ACL on sysvol directory /usr/local/samba/var/locks/sysvol/hoge.hoge.net O:LAG:BAD:P(A;OICI;0x001f01ff;;;LA)(A;OICI;0x001200a9;;;AU)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;SO)(A;OICI;0x001f01ff;;;BA)(A;OICI;0x001f01ff;;;BA)(A;OICI;0x001200a9;;;AU)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;SO)(A;OICI;;;;WD)(A;;0x001f01ff;;;BA)(A;;0x001f01ff;;;LA)(A;OICIIO;0x001f01ff;;;CO)(A;OICIIO;;;;CG) does not match expected value O:LAG:BAD:P(A;OICI;0x001f01ff;;;BA)(A;OICI;0x001200a9;;;SO)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;AU) from provision
  File "/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/__init__.py", line 175, in _run
    return self.run(*args, **kwargs)
  File "/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/ntacl.py", line 249, in run
    lp)
  File "/usr/local/samba/lib64/python2.6/site-packages/samba/provision/__init__.py", line 1722, in checksysvolacl
    raise ProvisioningError('%s ACL on sysvol directory %s %s does not match expected value %s from provision' % (acl_type(direct_db_access), dir_path, fsacl_sddl, SYSVOL_ACL))




wide links = yes を[global]セクションに書いて、 samba-tool ntacl sysvolcheck を実行した場合のエラー
.
.
.
Feb 16 23:19:16 HOGE-SERVER smbd[55999]:   Share 'IPC$' has wide links and unix extensions enabled. These parameters are incompatible. Wide links will be disabled for this share.



※ samba-4.1.16で確認