1. 程式人生 > >五十六、FTP介紹、使用vsftpd搭建ftp服務

五十六、FTP介紹、使用vsftpd搭建ftp服務

FTP介紹 使用vsftpd搭建ftp服務

五十六、FTP介紹、使用vsftpd搭建ftp服務

一、FTP介紹

FTP是File Transfer Protocol(文件傳輸協議,簡稱文傳協議)的英文簡稱,用於在Internet上控制文件的雙向傳輸,文件共享。

FTP的主要作用:讓用戶連接一個遠程計算機(這些計算機上運行著FTP服務器程序),並查看遠程計算機中的文件,然後把文件從遠程計算機復制到本地計算機,或把本地計算機的文件傳送到遠程計算機。

小公司用的多,大企業不用FTP,因為不安全,盡量不要用FTP,如果一定要用,就用SFTP,然後用密鑰


二、使用vsftpd搭建ftp服務

centos上默認自帶ftp的軟件包叫:vsftpd

# yum install -y vsftpd

# useradd -s /sbin/nologin virftp

//名字自定義,-s指定shell,/sbin/nologin表示這個用戶不能登錄系統。

//vsftpd這個軟件包可以使用系統級別的軟件包,就比如user1,可以用user1來登錄vsftpd,登錄形式不是ssh,而是ftp,登錄以後會進入user1的家目錄下;但是這樣不安全,所以解決辦法是:給這個ftp設置一個虛擬用戶,虛擬用戶映射成系統的普通用戶,這個虛擬用戶名,是不能登錄服務器這個機器的,這樣就安全很多。

# vim /etc/vsftpd/vsftpd_login 這個文件叫虛擬用戶密碼文件。

//內容如下,奇數行為用戶名,偶數行為密碼,多個用戶就寫多行

testuser1

aminglinux

# chmod 600 /etc/vsftpd/vsftpd_login

# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

//把文本的密碼文件轉換成計算機識別的二進制文件

# mkdir /etc/vsftpd/vsftpd_user_conf

//虛擬用戶的配置文件所在目錄,這個目錄是自定義的,也需要在配置文件中去定義。

# cd /etc/vsftpd/vsftpd_user_conf

# vim testuser1

//創建一個虛擬用戶的配置文件,這個文件名必須和用戶名保持一致,加入如下內容

local_root

=/home/virftp/testuser1 虛擬用戶家目錄

anonymous_enable=NO 是否允許匿名用戶

write_enable=YES 是否允許可寫

local_umask=022 和系統的umask保持一致的

anon_upload_enable=NO 是否允許匿名用戶可上傳

anon_mkdir_write_enable=NO 是否允許匿名用戶可創建目錄和寫

idle_session_timeout=600 超時時間,超過600秒以後就自動斷開ftp連接

data_connection_timeout=120 數據傳輸的超時時間

max_clients=10 最大的客戶端是多少

//標紅的是關鍵配置參數。


# mkdir /home/virftp/testuser1 創建虛擬用戶的家目錄

# touch /home/virftp/testuser1/aming.txt

# chown -R virftp:virftp /home/virftp

//因為最終要映射成virftp這個用戶,所以沒有權限不行

# vim /etc/pam.d/vsftpd //在最前面加上,這個操作很重要,定義密碼文件的位置,用來認證的文件。

#%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

# ls /lib64/security/pam_userdb.so //這裏需要註意,如果是centos6,區分32位和64位的操作系統,是32就寫32,這個文件是必須存在的。


# vim /etc/vsftpd/vsftpd.conf 編輯vsftpd的主配置文件

將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要想生效,這裏打開

guest_username=virftp 虛擬用戶映射的對應的系統用戶

virtual_use_local_privs=YES 告訴這個我們用的是虛擬用戶

user_config_dir=/etc/vsftpd/vsftpd_user_conf

//定義虛擬用戶配置文件所在路徑

allow_writeable_chroot=YES

# systemctl start vsftpd //啟動vsftpd服務

然後看一下監聽的端口是21,看一下進程。


測試ftp

# yum install -y lftp

# lftp [email protected] 口令就是密碼,

執行命令ls,就能看到之前創建的文件,看是否正常輸出

若不正常查看日誌/var/log/messages和/var/log/secure

看支持什麽命令,輸入個問號再回車。

常用的有put,get

lftp [email protected]:/> get aming.txt 會get到當前目錄

lftp [email protected]:/> quit

[root@MRX ~]# ls

就可以看到aming.txt這個文件

windows下安裝filezilla客戶端軟件,進行測試

lftp:Linux上的ftp客戶端。

filezilla:ftp的開源的,免費的,可以搭建服務,有客戶端,很好用。


用xshell實現和ftp的功能:兩種方案

(一)新建會話

協議改成SFTP,名稱定義的yaowei-01-sftp,主機名是192.168.93.130,端口22。然後就可以連接了,用戶名root,輸入密碼,進入後這時候是在root下。然後就可以get文件了,那麽get的文件保存的路徑就在這個會話屬性中SSH下的SFTP中可以自定義本地文件夾,這裏我定義了桌面,get就會直接傳到桌面上,因為這邊是命令行,所以不太直觀。

(二)使用XFTP

先ctrl+d退出來終端,然後可以使用ctrl+alt+f

然後到這個網站裏去下載這個插件,再安裝這樣的一個過程。


五十六、FTP介紹、使用vsftpd搭建ftp服務