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