天天看點

五十六、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

繼續閱讀