1、ftp協議及vsftpd的基本應用
文件共享服務:
工作在應用層:ftp(file transfer protocol)
應用層協議:tcp,
工作在內核:nfs
跨平臺:samba
ftp工作在221號端口,傳輸數據:
命令連接:文件管理類命令,始終在線的連接
數據連接:數據傳輸,按需創建及關閉連接
主動連接:由服務器創建連接
命令連接:
client用隨機端口發起連接請求到server 21,client會把使用端口告訴服務器端
數據連接:
server用20號端口連接客戶端發起端口+1或+2連接客戶端
被動連接:由客戶端創建連接
命令連接:
client用隨機端口連接server21號端口,並告訴客戶端請求數據會用哪個隨機端口。
數據連接:
clinent用隨機+1端口連接服務端已告知的隨機端口。
ftp server:wu-ftpd、proftpd、puerftp、vsftpd、servu
ftp client:ftp、lftp、wget、filezilla、gftp、flashfxp、cuteftp
響應碼:
1xx:信息
2xx:成功類狀態
3xx:需要進一步提供補充類信息
4xx:客戶端錯誤信息
5xx:服務端錯誤信息
用戶認證:
虛擬用戶:僅用於訪問某特定服務中的資源
nsswitch:network server switch:名稱解析框架
配置文件:/etc/nsswitch.conf
模塊:/lib64/libnss*,/usr/lib64/libnss
pam:pluggable authentication module
配置文件:/etc/pam.conf,/etc/pam.d/*
模塊:/lib64/security/
支持系統用戶:
支持匿名用戶:
centos自帶的是vsftp
yum -y install vsftpd
rpm -ql vsftpd
用戶認證配置文件 /etc/pam.d/vsftpd
啓動服務腳本:/etc/rc.d/init.d/vsftpd
日誌滾動:/etc/logrotate.d/vsftpd
配置文件目錄:/etc/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
主應用程序:/usr/sbin/vsftpd
匿名用戶共享資源位置:/var/ftp,匿名用戶:yum install finger
系統用戶登錄ftp訪問資源位置是用戶家目錄
虛擬用戶通過ftp訪問資源的位置映射爲系統用戶家目錄
客戶端安裝:yum install ftp或者在瀏覽其中輸入ftp://192.168.146.138
vim /etc/vsftpd/vsftpd.conf
匿名用戶配置:
是否支持匿名用戶登錄:anonymous_enable=YES
是否支持匿名用戶上傳: #anon_upload_enable=YES
是否支持匿名用戶創建目錄:anon_mkdir_write_enable=YES
是否支持匿名用戶刪除目錄:anon_ohter_write_enable=YES
系統用戶配置:
是否支持本地用戶:local_enable=YES
系統用戶寫權限:write_enable=YES
禁錮系統用戶只能在自己家目錄 :#chroot_local_user=YES
禁錮指定用戶在其家目錄中:#chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list
2、vsftpd的高級應用
vim /etc/vsftpd/vsftpd.conf
系統用戶配置:
在ftp任何目錄下創建.message文件,當用戶進入該目錄時顯示.message中內容dirmessage_enable=YES
是否啓用傳輸日誌:xferlog_enable=YES
指定日誌文件位置:#xferlog_file=/var/log/xferlog
修改上傳用戶:#chown_uploads=YES
指定修改上傳用戶:#chown_username=whoever
設定用戶超時時長:#idle_session_timeout=600
數據連接超時時長:#data_connection_timeout=120
登錄ftp時顯示的信息:#ftpd_banner=Welcome to blah FTP service.
配置文件在:/etc/pam.d/vsftpdpam_service_name=vsftpd
(是否啓用用戶登錄列表文件,默認配置文件/etc/vsftpd/user_list(手動創建):userlist_enable=YES
是否啓用/etc/vsftpd/user_list列表文件:userlist_deny=yes|no )
tcp_wrappers=YES
最大併發連接數:max_clients
每個IP可同時發起的併發請求數:max_per_ip
本地用戶最大的傳輸速率:local_max_rate
虛擬用戶:
所有虛擬用戶會被統一映射爲一個指定系統賬號,訪問共享位置爲此賬號家目錄。各虛擬用戶被賦予不同的訪問權限。通過參數進行指定
虛擬用戶賬號的存儲方式:
編輯文件:
奇數行爲用戶名,偶數行爲密碼。此文件需要被編譯爲hash格式:
關係型數據庫中的表:
即時查詢數據庫完成用戶認證:
pmy_mysql
lftp:lftp -u username ip
-c:支持斷點續傳
3、rpc概念及nfs的基本應用
nfs:network file system
傳統意義上,文件系統在內核中實現
最常見的文件系統調用:read()、open()、write()、close()
rpc(remote procedure call protocol)遠程過程系統調用
rpc調用步驟。客戶端應用程序在運行時發起一個系統調用,通過rpc協議借用tcp/ip發送給服務端主機,服務端接收到某個函數請求和參數,發起本地服務,調用本地實現函數或者過程,並把結果返回給本地進程,本地進程通過rpc協議,構建報文後相應給客戶端。
NIS: network infomating system
身份認證不在本地驗證。驗證信息都以明文方式傳輸,
nfs:基於ip認證,監聽在2049端口,服務器端需要啓動nfsd、mountd、idmapd,mountd爲半隨機端口,所以必須監聽rpc,查看111端口是否監聽。rpcinfo -p:查看啓動狀態
nfs安裝包:nfs-utils ,service nfs start 。
nfs主配置文件在/etc/exports,每一行一個文件系統例如:/opt/data 192.168.146.140(rw) 192.168.146.139(ro)
客戶端默認選項爲只讀、異步、secure
secure: 使用 1024 以下的 TCP/IP 端口實現 NFS 的連接。如果端口不夠用時需關閉,insecure 可以禁用這個選項。
rw:讀寫
async:異步
no_wdelay:
nohide:
no_subtree_check:
no_auth_nlm:
mp (mountpoint=path):
fsid=num:
查看NFS服務器端共享的文件系統:
showmount -e 192.168.146.138
掛載文件系統:
mount -t nfs 192.168.146.138:/opt/data /mnt
nfs映射用戶選項:
root_squash:當客戶端在用root登錄時,服務端將映射爲nfsnobody用戶,默認開啓
no_root_squash:不映射root用戶,
all_squash:所有用戶映射
anonuid 和 anongid:映射爲指定用戶和組
不用重啓服務,讀取/etc/export。
exportfs -ar:重新導出所有文件系統
-au:關閉導出所有文件系統
-u FS:指定關閉導出的文件系統
開機自動掛載nfs:
192.168.146.138:/opt/data /mnt nfs defaults,_netdev 0 0
_netdev,指明爲網絡掛載系統,指定時間內開機掛載無法找到會放棄掛載,系統可正常運行。
提高性能:
rsize 是服務器讀取字節數。wsize 是寫入到服務器字節數。默認1024,調整該值如8192,可以提高傳輸速度。
博客作業:2臺web服務器,提供相同的訪問頁面,連接同一個數據庫mariadb和nfs。
4、samba及其基本應用
smb:service message block(137/udp, 138/udp, 139/tcp, 445/tcp)
跨平臺工作文件系統:samba
yum install samba-client:客戶端工具
smbclient -L 192.168.18.5 -U administrator 客戶端獲取服務器共享文件夾。
smbclient //192.168.18.5/scan -U administrator:訪問服務端共享文件夾。help查看使用命令。
客戶端掛載Windows服務端共享目錄:
mount -t cifs //192.168.18.5/scan /mnt -o username=administrator,password=123456
yum install samba:服務端工具
服務腳本:
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb
主配置文件
/etc/samba/smb.conf
samba用戶:
賬號都爲系統用戶
密碼爲samba自行維護密碼
將系統用戶添加爲samba用戶:sambapasswd
啓動服務:
service nmb start
service smb start
確定(137/udp, 138/udp, 139/tcp, 445/tcp)端口已處於監聽狀態
編輯(/etc/samba/smb.conf)主配置文件中的工作組
workgroup = WORKGROUP
重啓服務:service smb restart && service nmb restart
添加系統用戶爲smb用戶:smbpasswd -a xj
-a:添加系統用戶爲smb用戶
-d: 禁用指定用戶
-e:啓用指定用戶
-x:刪除用戶
自定義共享,編輯主配置文件
[file]:共享文件名
path =/opt/file:共享文件夾
comment = :說明信息
guest ok = {yes|no}:是否匿名訪問
public = {yes|no}:是否公開
writable = {yes|no}:寫權限
read only = {yes|no}:只讀
write list = +GROUP_NAME:指定可訪問用戶或組
測試配置文件是否有語法錯誤,以及顯示最終生效的配置:
# testparm
注意:共享目錄時確定登錄用戶對該目錄有相應權限,如果沒有用setfacl設定,不要修改原有屬主和屬組。