SECURITY-centos 7でのNFS使用と構成

4088 ワード

NFSはNetwork File Systemの略であるネットワークファイルシステムである.クライアントは、NFSサーバ側が共有するデータディレクトリをローカルディレクトリにマウントする.
nfsはなぜRPCが必要なのですか?NFSでサポートされている機能が多く、異なる機能で異なるプログラムを使用して起動するため、NFSに対応する機能に対応するポートは固定できません.ポートが固定されていないため、クライアントとサービス間の通信障害になるため、RPCが必要です.NFSが起動すると、ランダムにいくつかのポートが使用され、その後、RPCサービスに関連するポートと機能情報が登録され、RPCは固定ポート111を使用してNFSクライアントからの要求を傍受し、正しいNFSサービスポート情報をクライアントに返すことで、クライアントとサービス側がデータ伝送を行うことができる.
二、NFSの仕事の流れ
1.プログラムがNFSクライアントでファイルへのアクセス要求を開始し、クライアントのローカルRPC(rpcbind)サービスはネットワークを通じてNFSサービス側のRPCの111ポートにファイルアクセス機能の要求を出す.2、NFSサービス側のRPCは登録されたNFSポートを見つけ、クライアントRPCサービスに通知する.3、クライアントは正しいポートを取得し、NFS daemonとオンラインでデータにアクセスする.4、アクセスデータが成功した後、フロントエンドアクセスプログラムに戻り、アクセス操作を完了する.したがって、クライアント、サービス側にかかわらず、NFSを使用する必要があり、RPCサービスをインストールする必要があります.NFSのRPCサービスは、Centos 5および以前はportmap、Centos 6ではrpcbindと呼ばれていた.
三、NFSサービスのインストール構成
nfs-utils、rpcbind
NFSパッケージをインストールするかどうかを確認
rpm -qa nfs-utils rpcbindyum install nfs-utils rpcbind
四、rpcbindサポートサービスの起動
サービスステータスの表示
systemctl status rpcbind.サービスrpcbindコマンドがどこで起動するか分からない場合はrpcサービスsystemctl restart rpcbindを起動します.サービスrpclsof-i:111 netstat-lntup|grep rpcbind(コマンドが見つからない場合は次のコマンドを実行)yum install net-tools lsof nfsサービスrpcに登録されているポート情報rpcinfo-p localhost rpcbind起動chkconfig--list rpcbindを確認
五、NFSサービスの起動
systemctl start nfs.サービスはステータスを表示します.サービスrpcに登録されているポート情報rpcinfo-p localhostを再度表示
六、NFSのよくあるプロセスの詳細
ps -ef|egrep "rpc|nfs"rpc 101101 1 0 17:11 ? 00:00:00/sbin/rpcbind -wrpcuser 101188 1 0 17:22 ? 00:00:00/usr/sbin/rpc.statd --no-notifyroot 101190 2 0 17:22 ? 00:00:00 [rpciod]root 101200 1 0 17:22 ? 00:00:00/usr/sbin/rpc.idmapdroot 101201 1 0 17:22 ? 00:00:00/usr/sbin/rpc.mountdroot 101206 2 0 17:22 ? 00:00:00 [nfsd4]root 101207 2 0 17:22 ? 00:00:00 [nfsd4_callbacks]root 101213 2 0 17:22 ? 00:00:00 [nfsd]root 101214 2 0 17:22 ? 00:00:00 [nfsd]root 101215 2 0 17:22 ? 00:00:00 [nfsd]root 101216 2 0 17:22 ? 00:00:00 [nfsd]root 101217 2 0 17:22 ? 00:00:00 [nfsd]root 101218 2 0 17:22 ? 00:00:00 [nfsd]root 101219 2 0 17:22 ? 00:00:00 [nfsd]root 101220 2 0 17:22 ? 00:00:00 [nfsd]root 101243 100830 0 17:28 pts/0 00:00:00 grep -E --color=auto rpc|nfs
nfsd(rpc.nfsd)メインプロセスは、主にクライアントがサービス側にログインできるかどうかを管理し、ログイン者ID判別する.mountd(rpc.mountd)はNFSファイルシステムを管理し、登録者の権限はrpcを管理する.lockd(必要ない)は、クライアントがrpcを同時に書き込むためにファイルをロックするために用いる.statd(不要)ファイル整合性rpcをチェックする.idmapd名前マッピングバックグラウンドプロセス
七、NFS起動の自己起動を配置する
chkconfig rpcbind onchkconfig nfs onchkconfig --list rpcbindchkconfig --list nfs
八、NFSサービス側の配置
vi/etc/exportsexportsファイル構成フォーマット:NFS共有ディレクトリNFSクライアントアドレス1(パラメータ1、パラメータ2、...)クライアントアドレス2(パラメータ1、パラメータ2、...)説明:NFS共有ディレクトリ:絶対パスを使用するには、nfsnobodyによって読み書きできます.NFSクライアントアドレス:IPを指定:192.168.0.1サブネットのすべてのホストを指定:192.168.1.0/24ドメイン名を指定するホスト:test.comドメイン名を指定するすべてのホスト:.test.comすべてのホスト:パラメータ:ro:ディレクトリ読取り専用rw:ディレクトリ読み書きsync:メモリバッファとディスクにデータを同期して書き込む効率は低いが、データの一貫性を保証できるasync:データをメモリバッファに保存し、必要に応じてディスクall_に書き込むsquash:リモートアクセスのすべての一般ユーザーおよび所属グループを匿名ユーザーまたはユーザーグループ(nfsnobody)no_にマッピングall_squash:allとsquash取逆(デフォルト)root_squash:rootユーザーおよび所属グループを匿名ユーザーまたはユーザーグループにマッピング(デフォルト)no_root_squash:rootsquashと逆anonuid=xxx:リモートアクセスのすべてのユーザーを匿名ユーザーにマッピングし、そのユーザーをローカルユーザー(UID=xxx)anongid=xxx:リモートアクセスのすべてのユーザーグループを匿名ユーザーグループアカウントにマッピングする:/data/tmp 192.168.1.0/24(rw,sync,all_squash)共有するディレクトリmkdir-p/data/tmpchown nfsnobody.nfsnobody/data/tmp再ロードnfs構成exportfs-rv nfsサーバのマウント状況showmount-e localhostを表示
九、マウントテスト
mkdir-p/data/tmp 2 mount-t nfs 192.168.1.2:/data/tmp/data/tmp 2マウントdf-h tmp下でファイルtouch/data/tmp/a 1を作成する.txt tp 2でファイルls/data/tmp 2アンインストールマウントumount/data/tmp 2があるかどうかを確認
十、NFSサーバーは開放するポートに関わる
# firewall-cmd --permanent --add-port=111/tcp
# firewall-cmd --permanent --add-port=111/udp
# firewall-cmd --permanent --add-port=2049/tcp
# firewall-cmd --permanent --add-port=2049/udp
# firewall-cmd --permanent --add-port=1001/tcp
# firewall-cmd --permanent --add-port=1001/udp
# firewall-cmd --permanent --add-port=32803/tcp
# firewall-cmd --permanent --add-port=32769/udp
# firewall-cmd --permanent --add-port=892/tcp
# firewall-cmd --permanent --add-port=892/udp

ファイアウォール操作