NFS介紹,exportfs命令,,FTP介紹,使用vsftpd搭建ftp服務

NFS介紹

  • NFS是Network File System的縮寫
  • NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新爲4.1版本
  • NFS數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。
  • NFS應用場景是:A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致。

NFS服務端安裝配置

  • 首先準備兩臺機器,一個做爲客戶端,一個做爲服務端。
  • 服務端要安裝兩個服務無 yum install -y nfs-utils rpcbind,客戶端也要安裝nfs-utils。
  • 安裝完成後,編輯vim /etc/exports //加入以下內容
/home/nfstestdir //分享的目錄 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

保存配置文件後,執行以下準備操做html

mkdir /home/nfstestdir
 chmod 777 /home/nfstestdir     //改爲777是方便作實驗。
 systemctl start rpcbind        //通常是安裝好自動啓動的,能夠看下netstat -lnpt看一下起沒起來。 
 systemctl start nfs            //ps aux |grep nfs 和rpc  看看服務有沒有啓動,通常啓動nfs以後,rpc會自動啓動相關服務。
 systemctl enable rpcbind       //設置開機自啓
 systemctl enable nfs
  • /home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000),看一下這裏面的配置選項都有哪些,什麼含義

  • rw 讀寫mysql

  • ro 只讀linux

  • sync 同步模式,內存數據實時寫入磁盤sql

  • async 非同步模式shell

  • no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大vim

  • root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶centos

  • all_squash 客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶安全

  • anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid服務器

客戶端掛載

  • yum install -y nfs-utils 安裝一下客戶端的nfs
  • 而後 showmount -e 192.168.245.128 //該ip爲NFS服務端ip
[root@aminglinux-01 ~]# showmount -e 192.168.245.128
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

報錯,防火牆致使。關一下服務端和客戶端的防火牆。 systemctl stop firewalldsession

還有 setenforce 0

或者:service iptables stop  //關閉防火牆

  • mount -t nfs 192.168.245.128:/home/nfstestdir /mnt 掛載
  • df -h
[root@aminglinux-01 ~]# df -h
文件系統                          容量  已用  可用 已用% 掛載點
/dev/sda3                          18G  3.6G   15G   21% /
devtmpfs                          479M     0  479M    0% /dev
tmpfs                             489M     0  489M    0% /dev/shm
tmpfs                             489M  6.8M  482M    2% /run
tmpfs                             489M     0  489M    0% /sys/fs/cgroup
192.168.245.128:/home/nfstestdir   18G  6.8G   12G   38% /mnt
/dev/sda1                         197M  109M   88M   56% /boot
tmpfs                              98M     0   98M    0% /run/user/0
[root@aminglinux-01 ~]#
  • 建立一個文件 touch /mnt/aminglinux.txt

ls -l /mnt/aminglinux.txt //能夠看到文件的屬主和屬組都爲1000


exportfs命令

  • 經常使用選項

-a 所有掛載或者所有卸載

-r 從新掛載

-u 卸載某一個目錄

-v 顯示共享目錄

  • 當改變/etc/exports配置文件後,使用exportfs命令掛載不須要重啓NFS服務。

NFS客戶端問題

  • 客戶端文件屬主屬組nobody

FS 4版本會有該問題

客戶端掛載共享目錄後,無論是root用戶仍是普通用戶,建立新文件時屬主、屬組爲no body

  • 客戶端掛載時加上 -o nfsvers=3

  • 客戶端和服務端都須要

vim /etc/idmapd.conf // 把「#Domain = local.domain.edu」 改成 「Domain = xxx.com」 (這裏的xxx.com,隨意定義吧),而後再重啓rpcidmapd服務


FTP介紹

  • FTP是File Transfer Protocol(文件傳輸協議,簡稱文傳協議)的英文簡稱,用於在Internet上控制文件的雙向傳輸。
  • FTP的主要做用就是讓用戶鏈接一個遠程計算機(這些計算機上運行着FTP服務器程序),並查看遠程計算機中的文件,而後把文件從遠程計算機複製到本地計算機,或把本地計算機的文件傳送到遠程計算機。
  • FTP小公司用的多,大企業不用FTP,由於不安全

使用vsftpd搭建ftp服務

  • centos上自帶的FTP叫vsftpd
  • 安裝 yum install -y vsftpd
  • 建立用戶 useradd -s /sbin/nologin virftp

首先創建與虛擬帳號相關聯的系統帳號

useradd -s /sbin/nologin virftp

接着創建與虛擬帳戶相關的文件 vim /etc/vsftpd/vsftpd_login

usertest1
111222333
usertest2
444555666

奇數行爲用戶名,偶數行爲密碼,多個用戶就寫多行

而後更改該文件的權限,提高安全級別

chmod 600 /etc/vsftpd/vsftpd_login

而後把明文的密碼文件改爲計算機識別的2進制文件

[root@aminglinux-01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@aminglinux-01 ~]# ls -l /etc/vsftpd/
總用量 36
-rw-------. 1 root root   125 8月   3 14:10 ftpusers
-rw-------. 1 root root   361 8月   3 14:10 user_list
-rw-------. 1 root root  5030 8月   3 14:10 vsftpd.conf
-rwxr--r--. 1 root root   338 8月   3 14:10 vsftpd_conf_migrate.sh
-rw-------. 1 root root    40 11月  6 16:43 vsftpd_login
-rw-r--r--. 1 root root 12288 11月  6 16:46 vsftpd_login.db
[root@aminglinux-01 ~]#

建立虛擬用戶的配置文件所在的目錄

mkdir /etc/vsftpd/vsftpd_user_conf
  • 建立虛擬用戶和對應的配置文件

用戶的配置文件名必定要跟對應用戶的名字是同樣的。cd /etc/vsftpd/vsftpd_user_conf

vim usertest1

寫入以下內容

local_root=/home/virftp/usertest1          定義虛擬用戶的家目錄
anonymous_enable=NO                        是否容許匿名用戶
write_enable=YES                           是否容許可寫
local_umask=022                            定義建立新文件和新目錄的權限是什麼
anon_upload_enable=NO                      是否容許匿名用戶能夠上傳
anon_mkdir_write_enable=NO                 是否容許匿名用戶能夠建立目錄並可寫
idle_session_timeout=600                   當咱們鏈接FTP超時時間600s
data_connection_timeout=120                數據傳輸超時時間120s
max_clients=10                             最大客戶端鏈接數

建立虛擬用戶的家目錄 mkdir /home/virftp/usertest1

建立一個文件,等會登錄就能看到這個文件了 touch /home/virftp/usertest1/aming.txt

映射用戶並賦予權限 chown -R virftp:virftp /home/virftp

定義密碼文件在哪裏 vim /etc/pam.d/vsftpd 在最前面加上以下內容:

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth
  • 修改vsftpd配置文件 vim /etc/vsftpd/vsftpd.conf

將anonymous_enable=YES 改成 anonymous_enable=NO

將#anon_upload_enable=YES 改成 anon_upload_enable=NO

將#anon_mkdir_write_enable=YES 改成 anon_mkdir_write_enable=NO

再最下面增長以下內容

chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

改完配置文件後啓動 : systemctl start vsftpd

[root@aminglinux-01 vsftpd_user_conf]# ps aux |grep vsftp
root       3264  0.0  0.0  53204   572 ?        Ss   18:08   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       3266  0.0  0.0 112668   972 pts/0    S+   18:08   0:00 grep --color=auto vsftp
[root@aminglinux-01 vsftpd_user_conf]#
  • 測試

安裝lftp客戶端軟件 yum install -y lftp

測試

[root@aminglinux-01 ~]# lftp usertest1@127.0.0.1
口令: 
lftp usertest1@127.0.0.1:~> ls      
lftp usertest1@127.0.0.1:~> ls      
-rw-r--r--    1 0        0               0 Nov 06 10:34 aming.txt
lftp usertest1@127.0.0.1:/>

擴展學習:

相關文章
相關標籤/搜索