01.18.11:08
[PR]
06.25.01:00
Windows Server 2008 の NFS で匿名ユーザーのアクセスを許可する
・匿名ユーザーを許可。全てのマシン読み書きOK
・everyoneフルコントロール許可
・Linux側のアクセス権は 777
--------------------------------------------------
# ls -al / | grep CentOS
drwxrwxrwx 2 4294967294 4294967294 64 6月 25 00:31 CentOS
--------------------------------------------------
・ファイルを作成しよとしても権限がなくて作成できない
--------------------------------------------------
# touch /CentOS/aaa
touch: cannot touch `/CentOS/aaa': 許可がありません
--------------------------------------------------
ここまでは、前回確認した内容ですが、もうひとつポリシーの設定があったようです。
以下のポリシーを有効にします。
[ローカルポリシー] - [セキュリティオプション] - [ネットワーク アクセス: Everyone のアクセス許可を匿名ユーザーに適用する]
ポリシーを有効にした後、gpupdate /force で反映させて、NFSサーバーサービスを再起動します。
再起動は nfsadmin コマンドから。
--------------------------------------------------
C:\>nfsadmin server stop && nfsadmin server start
サービスが正常に停止しました。
サービスは正常に開始されました。
--------------------------------------------------
・ファイルを作成できることを確認します。
--------------------------------------------------
# touch /CentOS/aaa
# ls -al /CentOS/
-rw-r--r-- 1 4294967294 4294967294 0 6月 25 00:52 aaa
--------------------------------------------------
作成したファイルはWindows から見ると、こんな感じのアクセス権になっていました。
--------------------------------------------------
C:\CentOS>icacls aaa
aaa NT AUTHORITY\ANONYMOUS LOGON:(R,W,D,WDAC,WO,DC)
NULL SID:(R)
Everyone:(R)
--------------------------------------------------
【参考】
Anonymous NFS share not working
06.22.01:49
マップされていないユーザーのUNIXアクセスを許可する
※2012/06/25追記:R2なしの2008でもユーザー名マッピングしなくてもアクセスできるようでした。
Windows Server 2008 のNFS共有タブの設定
Windows Server 2008 R2のNFS共有タブの設定
「マップされていないユーザーのUNIXアクセスを許可する」というチェックボックスがありますね。ここにチェックを入れるのがポイント。
マウントします。
---------------------------
[root@CentTest ~]# mount -t nfs 192.168.1.108:/W2K8 /W2K8
[root@CentTest ~]# mount -t nfs 192.168.1.208:/W2K8R2 /W2K8R2
---------------------------
権限を確認します。
---------------------------
[root@CentTest ~]# ls -al /
drwx------ 2 4294967294 4294967294 64 6月 22 00:59 W2K8
drwx------ 2 4294967294 4294967294 64 6月 22 01:06 W2K8R2
---------------------------
root でファイルを作成します。
Windows Server 2008 はファイルが作成できませんが、R2は作成できます。
---------------------------
[root@CentTest ~]# touch /W2K8/root01
touch: cannot touch `/W2K8/root01': 許可がありません
[root@CentTest ~]# touch /W2K8R2/root01
[root@CentTest ~]#
---------------------------
一般ユーザーでファイルを作成します。
どちらも権限がないのでファイルが作成できません。
---------------------------
[sample@CentTest ~]$ touch /W2K8/user01
touch: cannot touch `/W2K8/user01': 許可がありません
[sample@CentTest ~]$ touch /W2K8R2/user01
touch: cannot touch `/W2K8R2/user01': 許可がありません
---------------------------
rootで権限を変更します。
Windows Server 2008 の方はやはり変更できません。
---------------------------
[root@CentTest ~]# chmod 777 /W2K8
chmod: changing permissions of `/W2K8': 許可されていない操作です
[root@CentTest ~]# chmod 777 /W2K8R2
[root@CentTest ~]#
[root@CentTest ~]# ls -al /
drwx------ 2 4294967294 4294967294 64 6月 22 00:59 W2K8
drwxrwxrwx 2 4294967294 4294967294 64 6月 22 01:06 W2K8R2
---------------------------
再度一般ユーザーでファイルを作成します。
R2 は権限が与えられた(その他のユーザーに rwx)のでファイルの作成ができます。
---------------------------
[sample@CentTest ~]$ touch /W2K8/user01
touch: cannot touch `/W2K8/user01': 許可がありません
[sample@CentTest ~]$ touch /W2K8R2/user01
[sample@CentTest ~]$
[sample@CentTest ~]$ ls -al /W2K8R2/
-rw-rw-r-- 1 sample sample 0 6月 22 01:36 user01
---------------------------
Windows Server 2008 のNFS共有フォルダで、Windows 上の everyone ユーザーにフルコントロールを与えてみると、777 の権限になります。
---------------------------
[root@CentTest ~]# ls -al /
drwxrwxrwx 2 4294967294 4294967294 64 6月 22 00:59 W2K8
---------------------------
それでも root, 一般ユーザーともにファイルの作成はできません。
---------------------------
[root@CentTest ~]# touch /W2K8/root
touch: cannot touch `/W2K8/root': 許可がありません
[sample@CentTest ~]$ touch /W2K8/user03
touch: cannot touch `/W2K8/user03': 許可がありません
---------------------------
以上、Windows Server 2008 の NFS はユーザー名マッピングをしないとアクセスできないけど、R2 からはアクセスできるよという話でした。
【参考】
NFS 用サービスの概要
NFS クライアントによるリソースへのルート アクセスと匿名アクセスを許可する
06.14.00:42
ドメイン環境でローカルユーザーを使うときのrsh
※2012/06/23追記:rcp でも同じですよ。
普通にrshコマンドを実行するとこんな感じのエラーで失敗します。
% rsh -l administrator 192.168.1.115 df
rcmd: unknown user: rshlocal
これを解消するには、-Dオプションを使います。
% rsh -D -l administrator 192.168.1.115 df
Filesystem 512-blocks Used Available Capacity Type Mounted on
//HarddiskVolume2 83677176 49910288 33766888 60% ntfs /dev/fs/C
この -D オプションは、rshコマンドを実行するユーザー名のプレフィックスにマシン名を付加するオプションです。rshコマンドは実行時にユーザーの妥当性の確認が行われて、ドメイン環境のローカルユーザーでは、-Dオプションを付与しないといけないみたいです。
で、そこで注意が必要になってくるのが、rshサーバー側の ".rhosts" ファイルの記述方法です。
さっきも書いたように -D オプションはrshコマンドを実行するユーザー名のプレフィックスにマシン名を付加するオプションです。なので、rshサーバー側の .rhosts ファイルにも、<rshクライアントのマシン名>+<ユーザー名>の形式で記載する必要があります。
% cat .rhosts
192.168.1.5 W2K8R2-SUA+rshlocal ← こんな感じ。マシン名とユーザー名は「+」でつなぎます。
パケットキャプチャからも<マシン名>+<ユーザー名>が渡されていることが確認できます。
○参考○
Subsystem for UNIX-based Application (SUA) を利用した、rsh コマンドの実行について
05.21.13:35
DHCPパケットを見てみた(その2)
【環境】
DHCPサーバー:Windows Server 2008 R2(192.168.1.117)
DHCPクライアント:Windows 7
DHCPクライアントで ipconfig /renew したときのパケットを見てみた。
============================================
192.168.1.200 192.168.1.117 DHCP Request
192.168.1.117 192.168.1.200 DHCP ACK
============================================
ipconfig /renew のときは discover と offer がないんですね。
さらに、ユニキャストでやりとりしてます。
パケットの中身を少々見てみる。
■Request
============================================
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x966aa376
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 192.168.1.200 (192.168.1.200)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: 00:0c:29:58:86:07 (00:0c:29:58:86:07)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (t=53,l=1) DHCP Message Type = DHCP Request
Option: (t=61,l=7) Client identifier
Option: (t=12,l=12) Host Name = "Win7-test01"
Option: (t=81,l=27) Client Fully Qualified Domain Name
Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0"
Option: (t=55,l=12) Parameter Request List
End Option
============================================
IPを持っていないときはRequested IP Address でIPを要求していたけど、ここではRequested IP Addressはないですね。
代わりにClient IP address: で自分のIPは 192.168.1.200 って告げてます。
■Ack
============================================
Message type: Boot Reply (2)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x966aa376
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 192.168.1.200 (192.168.1.200)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: 00:0c:29:58:86:07 (00:0c:29:58:86:07)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (t=53,l=1) DHCP Message Type = DHCP ACK
Option: (t=58,l=4) Renewal Time Value = 1 minute
Option: (t=59,l=4) Rebinding Time Value = 1 minute, 45 seconds
Option: (t=51,l=4) IP Address Lease Time = 2 minutes
Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.117
Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Option: (t=81,l=3) Client Fully Qualified Domain Name
Option: (t=15,l=12) Domain Name = "syoyu.local"
Option: (t=6,l=4) Domain Name Server = 192.168.1.115
End Option
Padding
============================================
DHCPサーバーが Ack で OK!貸してやる!と。
<クライアントに配布済みのIPを除外してみる>
では、既にクライアントに配布済みのIPをリース可能なIPから除外したときはどんな動きになるのか。
まずはパケットの流れを見る
============================================
192.168.1.201 192.168.1.117 DHCP Request
192.168.1.117 255.255.255.255 DHCP NAK
0.0.0.0 255.255.255.255 DHCP Discover
192.168.1.117 255.255.255.255 DHCP Offer
0.0.0.0 255.255.255.255 DHCP Request
192.168.1.117 255.255.255.255 DHCP ACK
============================================
クライアントからの Request にサーバーが NACK を返してそのIPアドレスは貸せないよと。その後はDiscover から一連の流れをやり直しになる。
NACKパケットの中身を見てみる。
■NACK
============================================
Message type: Boot Reply (2)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x0aadfa3f
Seconds elapsed: 0
Bootp flags: 0x8000 (Broadcast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: Vmware_58:86:07 (00:0c:29:58:86:07)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (t=53,l=1) DHCP Message Type = DHCP NAK
Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.117
End Option
Padding
============================================
このパケットがブロードキャストになるのは何でだろうね。
05.20.23:33
DHCPパケットを見てみた
DHCPクライアント:Windows 7
まずは基本的な Discover, Offer, Request, Ack から。
=====================================
0.0.0.0 255.255.255.255 DHCP Discover
192.168.1.117 255.255.255.255 DHCP Offer
0.0.0.0 255.255.255.255 DHCP Request
192.168.1.117 255.255.255.255 DHCP ACK
=====================================
Offer 以降はユニキャストでよさそうな気もするけど、ブロードキャストでやり取りするのね。
パケットの中身の少々見てみる。
■Discover
=====================================
Transaction ID: 0x2c255782
Seconds elapsed: 0
Bootp flags: 0x8000 (Broadcast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: Vmware_58:86:07 (00:0c:29:58:86:07)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (t=53,l=1) DHCP Message Type = DHCP Discover
Option: (t=61,l=7) Client identifier
Option: (t=12,l=12) Host Name = "Win7-test01"
Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0"
Option: (t=55,l=12) Parameter Request List
=====================================
当然ですけど、Client IP Address とかはまだ空っぽ。
自分のホスト名を通知したりするんですね。
■Offer
=====================================
Message type: Boot Reply (2)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x2c255782
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 192.168.1.200 (192.168.1.200)
Next server IP address: 192.168.1.117 (192.168.1.117)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: Vmware_58:86:07 (00:0c:29:58:86:07)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (t=53,l=1) DHCP Message Type = DHCP Offer
Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Option: (t=58,l=4) Renewal Time Value = 4 days
Option: (t=59,l=4) Rebinding Time Value = 7 days
Option: (t=51,l=4) IP Address Lease Time = 8 days
Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.117
Option: (t=15,l=12) Domain Name = "syoyu.local"
Option: (t=6,l=4) Domain Name Server = 192.168.1.115
=====================================
Your (client) IP addressの192.168.1.200 を貸してやるけどどうだいー?
とDHCPサーバーが応答。リース期限とかの情報も含まれてますね。
■Request
=====================================
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x2c255782
Seconds elapsed: 0
Bootp flags: 0x8000 (Broadcast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: Vmware_58:86:07 (00:0c:29:58:86:07)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (t=53,l=1) DHCP Message Type = DHCP Request
Option: (t=61,l=7) Client identifier
Option: (t=50,l=4) Requested IP Address = 192.168.1.200
Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.117
Option: (t=12,l=12) Host Name = "Win7-test01"
Option: (t=81,l=27) Client Fully Qualified Domain Name
Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0"
Option: (t=55,l=12) Parameter Request List
=====================================
クライアントがそれ(Requested IP Address = 192.168.1.200)くださいーとRequest
■Ack
=====================================
Message type: Boot Reply (2)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x2c255782
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 192.168.1.200 (192.168.1.200)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: Vmware_58:86:07 (00:0c:29:58:86:07)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (t=53,l=1) DHCP Message Type = DHCP ACK
Option: (t=58,l=4) Renewal Time Value = 4 days
Option: (t=59,l=4) Rebinding Time Value = 7 days
Option: (t=51,l=4) IP Address Lease Time = 8 days
Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.117
Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Option: (t=81,l=3) Client Fully Qualified Domain Name
Option: (t=15,l=12) Domain Name = "syoyu.local"
Option: (t=6,l=4) Domain Name Server = 192.168.1.115
=====================================
最後にサーバーがOK!とAck
05.10.01:27
kerberos認証の情報を集めて行くところ
http://keicode.com/windows/kerberos-basic.php
→ 基本的な内容の理解がしやすいのでまずはここを読む
ケルベロス認証
http://itpro.nikkeibp.co.jp/article/COLUMN/20060518/238303/
→ ここも同じでわかりやすい
[NT]Windows 2000 での Kerberos 認証の概要
http://support.microsoft.com/kb/217098/ja
→ MSの情報にこだわるならここ
How the Kerberos Version 5 Authentication Protocol Works
http://technet.microsoft.com/ja-jp/library/cc772815%28v=ws.10%29.aspx
→ より詳細な内容はここ。英語で内容難しいけど、基本的なことが頭に入っていれば頑張ればなんとか読める
Description of Common Kerberos-Related Errors in Windows 2000
http://support.microsoft.com/kb/230476/en-us
→ kerberos関連のエラーの説明
補講第6回Kerberos(3) チケット
http://www5e.biglobe.ne.jp/~aji/3min/ex/sup06.html
→ お馴染み3分間ネットワーキングさん。ネットワーク観点でのkerberosの解説
05.02.00:28
問題ステップ記録ツール(psr.exe)
これを起動しながら作業すると、クリック(右クリック含む)したタイミングで、自動でスクリーンショットを取ってくれるので、作業ログを残す手間が省けます。
<使い方>
1. ファイル名を指定して実行から psr.exe を実行(管理者として実行の方がよい)
2. 問題ステップ記録ツールの「起動開始」をクリック
3. ログに残したい作業を実施
4. 作業完了後、問題ステップ記録ツールの「記録の停止」をクリックし、名前を付けて保存。
zip形式で保存されて、解凍するとmht形式のファイルが作成されています。
ブラウザで見ると作業ログがしっかりと記録されています。どこをクリックしたかっていう説明も記載されているので、作業内容がとてもわかりやすい。
作業ログ記録時に「コメントの追加」ボタンを押すと、コメントで補足説明もできますよ。
サポート技術情報 (2010年 4月): 問題ステップ記録ツール 編
http://blogs.technet.com/b/jpntsblog/archive/2010/05/06/2010-4.aspx
03.11.01:08
コマンドプロンプトから SUA のコマンドを実行する方法
C Shell のプロパティを見ると、posix.exe から /u と /c オプションを付けて
/bin/csh が起動されていることがわかります。
なので、同じように他のコマンドも posix.exe /u /c <実行コマンド> と
コマンドプロンプトから入力すれば問題なく実行できます。
ps コマンドとかこんな感じ。
=====================================================
C:\>posix.exe /u /c /bin/ps -ef
UID PID PPID STIME TTY TIME CMD
<nistrator 257 1 00:44:15 - 0:00.00 /usr/sbin/init
:
:
=====================================================
デーモンの 起動/停止 とかもできますよ。
=====================================================
C:\>posix.exe /u /c /etc/init.d/syslog stop
syslogd stopped
C:\>posix.exe /u /c /bin/ps -ef | grep syslog
C:\>posix.exe /u /c /etc/init.d/syslog start
syslogd started
C:\>posix.exe /u /c /bin/ps -ef | grep syslog
<nistrator 455 1 01:08:04 - 0:00.00 /usr/sbin/syslogd
=====================================================
03.06.01:24
SUA を使用した rsh サーバーの設定
Subsystem for UNIX-based Application (SUA) を利用した、rsh サーバーの設定について
http://technet.microsoft.com/ja-jp/windowsserver/ff706484
rshサーバー:Windows Server 2008 R2(ドメイン環境)
rshクライアント: CentOS 5.6 <rshサーバー手順>
1. SUAのインストール
http://thankyou.syoyu.net/Entry/4/
2. /etc/inetd.conf ファイルを編集。
以下の行のコメントアウトを外す。
shell stream tcp nowait NULL /usr/sbin/in.rshd in.rshd -a
shell stream tcp6 nowait NULL /usr/sbin/in.rshd in.rshd -a
3. inetd を再起動
% etc/init.d/inet stop
% etc/init.d/inet start
4. inetd が起動していることを確認
% ps -ef | grep inet
5. $HOME/.rhosts を編集
書式)
<rshクライアント> <rshクライアントのユーザー>
例)
192.168.1.5 root
6. ホームディレクトリの設定
ドメインコントローラのActive Directory ユーザーとコンピューターから、
認証対象ユーザーの「プロパティ」 - 「プロファイル」タブのローカルパスを設定
環境変数 %USERPROFILE% のパスを入力する。
7. rhosts ファイルのアクセス権を変更
% chmod 600 "$HOME"/.rhosts
8. ファイアーウォールの設定
TCP514 を許可するか、テスト環境なら取りあえずファイアーウォールを無効にする
9. rshクライアントからコマンドが実行できることを確認
# /usr/bin/rsh -l <ユーザー名> 192.168.1.5 df
Filesystem 512-blocks Used Available Capacity Type Mounted on
~略~
コマンドが実行できればOK
<3/7 追記>
Windows - Windows 間で rsh 接続するときは、クライアントとサーバーが別ドメインだったり、ドメインとワークグループだったりするとどうもうまくいかないので、そういった場合の情報は絶賛募集中です。
03.03.03:33
Windowds Server 2008 R2 を syslog サーバーにする
Windows Server 2008 R2 の SUA を使用してシスログサーバーを構築。
※SUAのインストールはこちら
http://thankyou.syoyu.net/Entry/4/
ここでは以下の構成で設定
ログサーバー:Windows Server 2008 R2
ログクライアント:Cent OS 5.6
<ログサーバーの設定>
1. /etc/init.d/syslog を編集。
編集前)
# ${SYSLOGD}
# [ $? = 0 ] && echo "syslogd started"
編集後)
${SYSLOGD}
[ $? = 0 ] && echo "syslogd started"
※コメントアウトを外す
2. syslogd を起動する。
コマンド)
/etc/init.d/syslog start
3. syslogd が起動していることを確認。
コマンド)
ps -ef | grep syslog
xxx 1495 1 03:11:05 - 0:00.00 /usr/sbin/syslogd
<ログクライアントの設定>
4. syslog.conf を編集して、ログサーバーに出力されるようにする。
編集前)
*.info;mail.none;authpriv.none;cron.none /var/log.messages
編集後)
*.info;mail.none;authpriv.none;cron.none @192.168.1.100
※@<ログサーバー名> or @<IPアドレス>
5. シスログを再起動
コマンド)
service syslog restart
6. logger コマンドでテスト用のログをログサーバーに送信
コマンド)
logger -p kern.info hoge
<ログサーバーの設定>
7. ログが出力されていることを確認
コマンド)
cat /var/adm/log/messages
:略
Mar 3 03:30:11 192.168.1.20 root: hoge ← こんな感じで出ていればOK
でも、このままだとログローテーションがされないので、bat ファイルとかでローテーションさせる必要があるけど、それはまた別の機会に。
http://blogs.technet.com/b/sfu/archive/2010/04/15/steps-to-configure-a-syslog-server-in-interix-sua.aspx