1. 程式人生 > >ftp介紹和搭建

ftp介紹和搭建

oca rwx 建立 ftpusers 添加 系統位數 timeout 進制 prot

FTP介紹

FTP是File Transfer Protocol(文件傳輸協議的英文簡稱),用於internet上控制文件雙向傳輸,ftp主要作用就是讓用戶連接一個遠程計算機(安裝了FTP程序),並查看遠程計算機中的文件,可以把遠程計算機中的文件復制到本地計算機中,或者把文件傳輸到遠程計算機當中。
什麽情況下使用FTP;在遠程終端中操作linux時,有時候我們需要傳輸一個很大的文件到服務器,或者需要從服務器下載一個很大的文件。通常我們使用rzsz命令就可以滿足大部分需求,但是當文件大於4GB以上時,rzsz會不支持大文件傳輸,這時候rzsz這個命令就無能為力了。我們就需要使用一個能夠傳輸大文件的傳輸協議,這個就是文件傳輸協議,即FTP傳輸工具

FTP因為安全性較差,大的企業中應用到的地方不多,因為大企業都會有自己的一套傳輸控制的方案

使用vsftp搭建ftp服務

安裝vsftpd

[root@aaa /]# yum install -y vsftpd
已加載插件:fastestmirror
base | 3.6 kB 00:00:00 ? ? 
epel/x86_64/metalink | 8.3 kB 00:00:00 ? ? 
epel ? ? 
已安裝:
  vsftpd.x86_64 0:3.0.2-22.el7 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
完畢!

創建運行的用戶,vsftp可以使用系統級別的用戶,該用戶是系統用戶,可以登錄到系統當中,但是這樣又會不安全,所以vsftp有虛擬用戶這一設置,虛擬用戶建立在真實用戶上,虛擬用戶可以登錄訪問vsftp,但是不可以登錄系統,增加了安全性
創建真實用戶和虛擬用戶,虛擬用戶在配置文件中定義,奇數行為用戶名。偶數行為用戶的密碼,創建後保存退出

[root@aaa /]# useradd -s /sbin/nologin vsftpd
[root@aaa /]# vim /etc/vsftpd/vsftpd_login
user1
passwd1
~ ? ?

使用db_load轉換用戶密碼配置文件 ?db_load -T -t hash -f? ?密碼配置文件 ? 轉換後的文件.db

?將虛擬用戶配置文件權限設置為600只允許root可讀,其他用戶無權限訪問,並把虛擬用戶配置文件轉為二進制的文件

[root@aaa /]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@aaa /]# ll -h /etc/vsftpd/
總用量 36K
-rw------- 1 root root 125 8月 3 2017 ftpusers
-rw------- 1 root root 361 8月 3 2017 user_list
-rw------- 1 root root 5.0K 8月 3 2017 vsftpd.conf
-rwxr--r-- 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh
-rw------- 1 root root 14 8月 18 09:05 vsftpd_login
-rw-r--r-- 1 root root 12K 8月 18 09:10 vsftpd_login.db

創建虛擬用戶配置文件,創建虛擬用戶配置文件保存目錄,並配置文件必須要和虛擬用戶配置文件中的用戶名保持一致

[root@aaa /]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@aaa /]# cd /etc/vsftpd/vsftpd_user_conf/
[root@aaa vsftpd_user_conf]# vim user1
local_root=/home/vsftpd/user1 ? ? ? ? ? ?  指定虛擬用戶的家目錄,即可訪問的目錄
anonymous_enable=NO ? ? ? ? ? ? ? ? ? ? ?  是否禁止匿名用戶訪問,YES允許/NO拒絕
write_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? ? 是否設置為只讀
local_umask=022 ? ? ? ? ? ? ? ? ? ? ? ? ?  創建的文件默認權限
anon_upload_enable=NO ? ? ? ? ? ? ? ? ? ?  匿名用戶是否可寫
anon_mkdir_write_enable=NO ? ? ? ? ? ? ? ? 匿名用戶是否可讀
idle_session_timeout=600 ? ? ? ? ? ? ? ? ? 鏈接的最大時間,超過這個時間為超時鏈接,會被結束掉
data_connection_timeout=120 ? ? ? ? ? ? ?  數據最大保持時間
max_clients=10 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 最大鏈接數

創建虛擬用戶的訪問目錄,創建測試文件並將虛擬用戶家目錄設置為指定的所屬主、所屬組

[root@aaa vsftpd_user_conf]# mkdir /home/vsftpd/user1
[root@aaa vsftpd_user_conf]# touch /home/vsftpd/user1/index.html
[root@aaa vsftpd_user_conf]# chown -R vsftpd:vsftpd /home/vsftpd/

在vsftp的模塊配置文件中添加保存虛擬用戶和用戶密碼的文件位置,指定支持庫的位置。
加入如下兩行,註意的是在lib64這個位置,是區分系統位數的,如lib32對應的是32位的操作系統

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
[root@aaa vsftpd_user_conf]# 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
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

修改vsftpd的主配置文件,這個文件起到全局作用,其配置生效的優先級大於虛擬用戶配置文件中的配置
在主配置文件中修改下列內容,取消註釋並將YES改為NO

[root@aaa vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO ? ? ? ? ? ? ? ? 禁止匿名用戶訪問
anon_upload_enable=NO ? ? ? ? ? ? ? 禁止匿名用戶寫入
anon_mkdir_write_enable=NO ? ? ? ?  禁止匿名用戶讀取

主配置文件中添加新的配置項

chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd
vurtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

ftp介紹和搭建