日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

ftp服务及配置

發布時間:2023/12/13 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 ftp服务及配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄FTP介紹FTP協議FTP客戶端與服務端的溝通流程文件傳輸方式文件傳輸模式Port模式(主動模式)Passive模式(被動模式)認證方式三種登錄方式的服務配置及實例匿名登錄系統用戶登錄虛擬賬戶登錄ftp服務常見參數參數實例anonymous_enable 是否允許匿名登錄anon_upload_enable 是否允許匿名用戶上傳文件anon_mkdir_enable 是否允許匿名用戶創建文件anon_other_write_enable 是否允許匿名用戶刪除文件allow_writeable_chroot/chroot_local_user 是否禁錮用戶于家目錄中,無法切換目錄

FTP介紹

FTP文件傳輸協議(File Transfer Protocol),用于Internet上的控制文件的雙向傳輸,是一個應用程序。工作在TCP/IP協議族的應用層,其傳輸層協議是TCP協議,目的在于提高文件傳輸的共享性和可靠性,是基于客戶/服務器模式工作的

FTP協議

FTP會建立兩個連接,將命令與數據分開傳輸,正是因為這樣,提高了傳輸效率。

連接端口 作用
控制端口:21 基于tpc協議,建立控制連接
傳輸端口:20 上傳/下載文件

每一個FTP命令發送后,FTP服務器就會返回一個字符串,其中包含一個響應碼和一些說明信息,其中響應碼主要用于判斷命令是否被成功執行。

FTP客戶端與服務端的溝通流程

步驟:

建立控制連接

客戶端以一個隨機端口(大于1023)以TCP層根據服務器的IP,三次握手之后與服務端的21端口建立連接。這個TCP連接稱為控制連接,用戶發出的FTP命令和服務器的回應都是依靠該連接來傳送的,在用戶退出前一直存在。

建立數據連接

在控制連接的基礎上,客戶端會以控制連接的隨機端口+1的端口號來對服務端進行連接

關閉FTP

當用戶退出FTP時,客戶端發送退出命令,之后控制連接被關閉,FTP服務結束。

文件傳輸方式

傳輸方式 解釋
ASCLL傳輸方式 文件傳輸時FTP會自動調整文件的內容以便于把文件解析為另外那臺計算機存儲文本文件的格式。
二進制傳輸方式 二進制傳輸時,在拷貝任何非文本文件時,FTP會逐字拷貝,不會對這些文件進行處理。

文件傳輸模式

Port模式(主動模式)

三次握手建立控制連接,PortA 為隨機端口號
由于客戶端的端口是隨機的,所以客戶端要先告知服務端自己的控制傳輸的端口號
服務端根據提供的端口號主動連接客戶端

Passive模式(被動模式)

客戶端傳輸PASV給服務端,表明這是一次被動傳輸
由于被動模式的服務端端口號是隨機的,所以服務端需要告知客戶端傳輸控制的端口號
客戶端得知端口號后,訪問服務端

認證方式

匿名登錄
服務器上系統用戶登錄
虛擬賬戶登錄

三種登錄方式的服務配置及實例

匿名登錄

[root@localhost ~]# yum install -y vsftpd  安裝服務

[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf     修改主配置文件

......
anonymous_enable=YES
......

local_umask=022
anon_umask=022         為上傳的文件設置默認權限
......
anon_upload_enable=YES   設置上傳權限
#
......
# new directories.
anon_mkdir_write_enable=YES  為ftp用戶設置寫權限

anon_other_write_enalbe=YES   為ftp賬戶設置刪除權限

[root@localhost vsftpd]# setfacl -m u:ftp:rwx /var/ftp/pub/  設置文件特殊控制,將匿名用戶ftp設置與共享文件的高級權限
[root@localhost vsftpd]# getfacl /var/ftp/pub/
getfacl: Removing leading '/' from absolute path names
# file: var/ftp/pub/
# owner: root
# group: root
user::rwx
user:ftp:rwx
group::r-x
mask::rwx
other::r-x

[root@localhost vsftpd]# systemctl enable --now vsftpd   啟動服務


windows效果

windows上傳文件

系統用戶登錄

[root@localhost vsftpd]# useradd ftp_user  添加用戶,共享用戶的家目錄

[root@localhost vsftpd]# id ftp_user
uid=1002(ftp_user) gid=1002(ftp_user) groups=1002(ftp_user)
[root@localhost vsftpd]# passwd ftp_user 為用戶設置密碼
Changing password for user ftp_user.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully

windows效果

上傳文件

linux服務端查看上傳的文件

[root@localhost vsftpd]# ll /home/ftp_user
total 0
drwxr-xr-x. 2 ftp_user ftp_user 6 Oct 14 16:09 新文件夾

虛擬賬戶登錄


[root@localhost ~]# useradd -d /var/ftproot/ -s /sbin/nologin test
[root@localhost ~]# id test
uid=1003(test) gid=1003(test) groups=1003(test)   創建系統用戶。家目錄即為共享目錄


vsftpd配置目錄下新建虛擬賬戶及密碼
[root@localhost vsftpd]# vim vu.list
it
123456
it2
123456
it3
123456

[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db   對虛擬賬號進行加密操作

[root@localhost vsftpd]# chmod 600 vu.*  安全起見,為兩個用戶文件設置權限

[root@localhost vsftpd]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak  備份用戶配置文件


[root@localhost pam.d]# vim vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu    為虛擬用戶進行認證


[root@localhost pam.d]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vsftpd.conf 
.......
# Make sure, that one of the listen options is commented !!
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
guest_enable=YES
guest_username=test   指定用戶名
user_config_dir=/etc/vsftpd/share_dir   指定虛擬賬戶配置文件的地址
allow_writeable_chroot=YES

[root@localhost vsftpd]# cd /etc/vsftpd/share_dir/
[root@localhost share_dir]# touch it 在配置文件下新建單個虛擬賬戶的配置文件
[root@localhost share_dir]# vim it 
anon_upload_enable=YES   為虛擬用戶it配置上傳權限
anon_mkdir_write_enable=YES   寫入權限

windows效果

利用虛擬用戶it登錄共享目錄,并寫入123文件

ftp服務常見參數

參數名稱 含義
anonymous_enable=YES 允許匿名用戶登錄
anon_upload_enable=YES 允許匿名用戶上傳
anon_mkdir_write_enable=YES 允許匿名用戶創建目錄
anon_other_write_enable=YES 允許匿名用戶刪除目錄
allow_writeable_chroot=YES 允許被禁錮的用戶家目錄有寫權限
local_umask=022 設置上傳遮罩碼
chroot_local_user=YES 禁錮所有的ftp本地用戶于家目錄中

參數實例

anonymous_enable 是否允許匿名登錄

默認不允許匿名方式登錄

修改配置文件

[root@localhost pam.d]# !vim
vim /etc/vsftpd/vsftpd.conf
......
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES   設置為YES
......

anon_upload_enable 是否允許匿名用戶上傳文件

默認并無權限上傳文件

修改配置文件

......
# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_
full_access
anon_upload_enable=YES  允許用戶上傳
......

anon_mkdir_enable 是否允許匿名用戶創建文件


修改配置文件

......
[root@localhost pam.d]# !vim
vim /etc/vsftpd/vsftpd.conf 
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES  修改為允許上傳
......

anon_other_write_enable 是否允許匿名用戶刪除文件

修改配置文件

[root@localhost pam.d]# !vim
vim /etc/vsftpd/vsftpd.conf 
......
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
anon_other_write_enable=YES   添加刪除文件權限

新建文件夾已被刪除

allow_writeable_chroot/chroot_local_user 是否禁錮用戶于家目錄中,無法切換目錄

總結

以上是生活随笔為你收集整理的ftp服务及配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。