samba/NFS をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
samba-ADで提供されているkerberos認証を使ってNFSをよりセキ...
大抵NFSはUIDさえ合っていれば権限が奪えてしまいます. /etc/...
動いていない計算機のIPを使いNFSマウントできてしまえばUID...
それを防ぐために NFS にも認証を設ける方法がある.
***nfsサービスプリンシパルを設ける [#m2dade07]
nfsサーバ/クライアント両方に nfsサービスプリンシパル を設...
nfsサービスプリンシパルの付け方ですが、一旦adサーバにnfs...
その後、adサーバにてnfsサービスプリンシパルを設けます。参...
-ADに参加
#code(nonumber){{
(nfsサーバ)
[root@nfs ~]# net ads join -Uadministrator
(nfsクライアント)
[root@client ~]# net ads join -Uadministrator
}}
-adサーバにてnfsサービスプリンシパルを追加
#code(nonumber){{
(nfsサーバ向けにnfsサービスプリンシパルを加える)
[root@ad ~]# /opt/samba/bin/samba-tool spn add nfs/nfs.bi...
(nfsクライアント向けにnfsサービスプリンシパルを加える)
[root@ad ~]# /opt/samba/bin/samba-tool spn add nfs/client...
(確認)
[root@ad ~]# /opt/samba/bin/samba-tool spn list nfs$
[root@ad ~]# /opt/samba/bin/samba-tool spn list client$
[root@ad ~]#
}}
-nfsサーバ/クライアントにて初回に得た krb5.keytab ファイ...
#code(nonumber){{
(nfsサーバ)
[root@nfs ~]# rm -rf /etc/krb5.keytab
[root@nfs ~]# net ads join -Uadministrator
(nfsクライアント)
[root@client ~]# rm -rf /etc/krb5.keytab && net ads join ...
}}
-/etc/krb5.confの設定
ごくごく最低限としては下記のようにする. kdc/realmの情報を...
#code(nonumber){{
[libdefaults]
default_realm = BIOSYM.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
}}
***nfsサーバでnfsサービスの設定を行う [#ydede0a5]
肝心のnfsサービスを構築します
「nfs-utils」パッケージをインストールして、擬似ファイルシ...
#code(nonumber){{
[root@nfs ~]# yum install nfs-utils
[root@nfs ~]# systemctl enable nfs-server && systemctl st...
[root@nfs ~]# mkdir -p /nfs/home
[root@nfs ~]# mount --bind /home /nfs/home
[root@nfs ~]# echo "/home /nfs/home none bind 0 0" >> /et...
[root@nfs ~]# vi /etc/exports
/nfs gss/krb5(rw,sync,fsid=0)
/nfs/home gss/krb5(rw,sync,nohide)
[root@nfs ~]# exportfs -avr
}}
firewallの設定も行う。&size(10){「/usr/lib/firewalld/serv...
#code(nonumber){{
[root@nfs ~]# firewall-cmd --add-service={mountd,nfs,rpc-...
[root@nfs ~]# firewall-cmd --reload
}}
***krb5でマウント [#q97a94c6]
コマンドベースで
#code(nonumber){{
[root@client ~]# yum install nfs-utils && reboot
[root@client ~]# mount -t nfs -o sec=krb5 nfs:/home /home...
}}
とすれば行ける。確認はmountコマンドとかで
#code(nonumber){{
[root@client ~]# mount | grep nfs:/home
nfs:/home on /home type nfs4 (rw,relatime,vers=4.1,rsize=...
}}
っと「sec=krb5」となっています。
***nfs通信の整合性チェック、暗号化 [#b8b9c2d2]
nfsサーバ側で/etc/exportsの中身を
#code(nonumber){{
/nfs gss/krb5(rw,sync,fsid=0) gss/krb5i(rw,sync,fsi...
/nfs/home gss/krb5(rw,sync,nohide) gss/krb5i(rw,sync,noh...
}}
として「exportfs -avr」を実行後、
nfsクライアントでsec欄にkrb5iなら、チェックサムで改竄防止...
#code(nonumber){{
(チェックサム)
[root@client ~]# mount -t nfs4 -o sec=krb5i,vers=4.1 nfs:...
(nfsトラフィックの暗号化)
[root@client ~]# mount -t nfs4 -o sec=krb5p,vers=4.1 nfs:...
}}
***めも [#ab25ada2]
「gssproxy: gssproxy[1591]: (OID: { 1 2 840 113554 1 2 2 ...
/etc/sysconfig/nfsで「GSS_USE_PROXY="no"」として再起動
***ADに参加してないのにnfsマウントをすると [#g51b9176]
#code(nonumber){{
[root@client2 ~]# mount -t nfs nfs.biosym.local:/home /home
mount.nfs: access denied by server while mounting nfs.bio...
[root@client2 ~]#
}}
と拒否される
nfsサーバ側には
#code(nonumber){{
Aug 2 13:53:18 nfs rpc.mountd[922]: refused mount reques...
}}
と記録される。
もちろんnfsサーバの/etc/exportsが従来の方式を含んでいるなら
#code(nonumber){{
[root@nfs ~]# cat /etc/exports
/nfs gss/krb5(rw,sync,fsid=0) 10.10.0.0/24(rw,sync,...
/nfs/home gss/krb5(rw,sync,nohide) 10.10.0.0/24(rw,sync,...
[root@nfs ~]# exportfs -avr
exporting 10.10.0.0/24:/nfs/home
exporting 10.10.0.0/24:/nfs
exporting gss/krb5:/nfs/home
exporting gss/krb5:/nfs
[root@nfs ~]#
}}
ADに参加していないnfsクライアント側でもmountできる
#code(nonumber){{
[root@client2 ~]# mount -t nfs -o sec=sys nfs.biosym.loca...
[root@client2 ~]# df -Th /home
Filesystem Type Size Used Avail Use% Mounte...
nfs.biosym.local:/home nfs4 15G 1.5G 14G 11% /home
[root@client2 ~]#
}}
終了行:
samba-ADで提供されているkerberos認証を使ってNFSをよりセキ...
大抵NFSはUIDさえ合っていれば権限が奪えてしまいます. /etc/...
動いていない計算機のIPを使いNFSマウントできてしまえばUID...
それを防ぐために NFS にも認証を設ける方法がある.
***nfsサービスプリンシパルを設ける [#m2dade07]
nfsサーバ/クライアント両方に nfsサービスプリンシパル を設...
nfsサービスプリンシパルの付け方ですが、一旦adサーバにnfs...
その後、adサーバにてnfsサービスプリンシパルを設けます。参...
-ADに参加
#code(nonumber){{
(nfsサーバ)
[root@nfs ~]# net ads join -Uadministrator
(nfsクライアント)
[root@client ~]# net ads join -Uadministrator
}}
-adサーバにてnfsサービスプリンシパルを追加
#code(nonumber){{
(nfsサーバ向けにnfsサービスプリンシパルを加える)
[root@ad ~]# /opt/samba/bin/samba-tool spn add nfs/nfs.bi...
(nfsクライアント向けにnfsサービスプリンシパルを加える)
[root@ad ~]# /opt/samba/bin/samba-tool spn add nfs/client...
(確認)
[root@ad ~]# /opt/samba/bin/samba-tool spn list nfs$
[root@ad ~]# /opt/samba/bin/samba-tool spn list client$
[root@ad ~]#
}}
-nfsサーバ/クライアントにて初回に得た krb5.keytab ファイ...
#code(nonumber){{
(nfsサーバ)
[root@nfs ~]# rm -rf /etc/krb5.keytab
[root@nfs ~]# net ads join -Uadministrator
(nfsクライアント)
[root@client ~]# rm -rf /etc/krb5.keytab && net ads join ...
}}
-/etc/krb5.confの設定
ごくごく最低限としては下記のようにする. kdc/realmの情報を...
#code(nonumber){{
[libdefaults]
default_realm = BIOSYM.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
}}
***nfsサーバでnfsサービスの設定を行う [#ydede0a5]
肝心のnfsサービスを構築します
「nfs-utils」パッケージをインストールして、擬似ファイルシ...
#code(nonumber){{
[root@nfs ~]# yum install nfs-utils
[root@nfs ~]# systemctl enable nfs-server && systemctl st...
[root@nfs ~]# mkdir -p /nfs/home
[root@nfs ~]# mount --bind /home /nfs/home
[root@nfs ~]# echo "/home /nfs/home none bind 0 0" >> /et...
[root@nfs ~]# vi /etc/exports
/nfs gss/krb5(rw,sync,fsid=0)
/nfs/home gss/krb5(rw,sync,nohide)
[root@nfs ~]# exportfs -avr
}}
firewallの設定も行う。&size(10){「/usr/lib/firewalld/serv...
#code(nonumber){{
[root@nfs ~]# firewall-cmd --add-service={mountd,nfs,rpc-...
[root@nfs ~]# firewall-cmd --reload
}}
***krb5でマウント [#q97a94c6]
コマンドベースで
#code(nonumber){{
[root@client ~]# yum install nfs-utils && reboot
[root@client ~]# mount -t nfs -o sec=krb5 nfs:/home /home...
}}
とすれば行ける。確認はmountコマンドとかで
#code(nonumber){{
[root@client ~]# mount | grep nfs:/home
nfs:/home on /home type nfs4 (rw,relatime,vers=4.1,rsize=...
}}
っと「sec=krb5」となっています。
***nfs通信の整合性チェック、暗号化 [#b8b9c2d2]
nfsサーバ側で/etc/exportsの中身を
#code(nonumber){{
/nfs gss/krb5(rw,sync,fsid=0) gss/krb5i(rw,sync,fsi...
/nfs/home gss/krb5(rw,sync,nohide) gss/krb5i(rw,sync,noh...
}}
として「exportfs -avr」を実行後、
nfsクライアントでsec欄にkrb5iなら、チェックサムで改竄防止...
#code(nonumber){{
(チェックサム)
[root@client ~]# mount -t nfs4 -o sec=krb5i,vers=4.1 nfs:...
(nfsトラフィックの暗号化)
[root@client ~]# mount -t nfs4 -o sec=krb5p,vers=4.1 nfs:...
}}
***めも [#ab25ada2]
「gssproxy: gssproxy[1591]: (OID: { 1 2 840 113554 1 2 2 ...
/etc/sysconfig/nfsで「GSS_USE_PROXY="no"」として再起動
***ADに参加してないのにnfsマウントをすると [#g51b9176]
#code(nonumber){{
[root@client2 ~]# mount -t nfs nfs.biosym.local:/home /home
mount.nfs: access denied by server while mounting nfs.bio...
[root@client2 ~]#
}}
と拒否される
nfsサーバ側には
#code(nonumber){{
Aug 2 13:53:18 nfs rpc.mountd[922]: refused mount reques...
}}
と記録される。
もちろんnfsサーバの/etc/exportsが従来の方式を含んでいるなら
#code(nonumber){{
[root@nfs ~]# cat /etc/exports
/nfs gss/krb5(rw,sync,fsid=0) 10.10.0.0/24(rw,sync,...
/nfs/home gss/krb5(rw,sync,nohide) 10.10.0.0/24(rw,sync,...
[root@nfs ~]# exportfs -avr
exporting 10.10.0.0/24:/nfs/home
exporting 10.10.0.0/24:/nfs
exporting gss/krb5:/nfs/home
exporting gss/krb5:/nfs
[root@nfs ~]#
}}
ADに参加していないnfsクライアント側でもmountできる
#code(nonumber){{
[root@client2 ~]# mount -t nfs -o sec=sys nfs.biosym.loca...
[root@client2 ~]# df -Th /home
Filesystem Type Size Used Avail Use% Mounte...
nfs.biosym.local:/home nfs4 15G 1.5G 14G 11% /home
[root@client2 ~]#
}}
ページ名:
1