Linux搭建ftp服務

ftp(文件傳輸協議)服務默認使用TCP協議的20、21端口與客戶端進行通訊。20端口用於創建數據鏈接,並傳輸文件數據;21端口用於創建控制鏈接,並傳輸ftp控制指令。linux

ftp數據鏈接分爲 主動模式和被動模式;數據庫

客戶端與服務器創建數據鏈接之後,就能夠根據從控制鏈接中發送的ftp命令進行上傳和下載文件。傳輸過程當中是否進行字符轉換,分爲文本模式和二進制模式。使用二進制模式筆文本模式更有效率。大多數ftp客戶端能夠根據文件類型自動選擇文件傳輸模式,無需用戶手工指定。vim

ftp用戶類型分爲:
1.匿名用戶;
2.本地用戶;
3.虛擬用戶。

接下來咱們就在linux環境中搭建ftp服務緩存

1.準備工做:

[root@localhost ~]# ifconfig ens33          
//肯定本機IP地址(建議靜態IP地址)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//關閉防火牆、SELinux

2.本身建立yum倉庫配置文件,並安裝FTP服務:

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# vim a.repo
//本身編寫一個yum配置文件,必須以「repo」結尾,內容以下:
[a]                                    //yum倉庫ID
baseurl=file:///mnt           //使用本地系統鏡像做爲YUM源
gpgcheck=0                   //不查公鑰
[root@localhost ~]# yum clean all
//清楚YUM緩存(避免出錯)
[root@localhost ~]# mount /dev/cdrom /mnt
//掛載系統盤
[root@localhost ~]# yum -y install vsftpd
//安裝FTP服務

3.FTP的配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
//FTP服務的配置文件
FTP服務配置文件一些經常使用的配置選項參數:
匿名用戶經常使用參數:
anonymous_enable=YES:是否容許匿名訪問
anon_umask=022:設置匿名用戶所上傳文件的默認權限掩碼值
anon_root=/vat/ftp:設置匿名用戶的宿主目錄(默認爲/var/ftp)
anon_upload_enable=YES:是否容許匿名用戶上傳文件
anon_mkdir_write_enable=YES:是否容許匿名用戶有建立目錄的寫入權限
anon_other_write_enable=YES:是否容許匿名用戶有其餘寫入的權限(例如更名、修改、刪除等)
本地用戶經常使用參數:
local_enable=YES:是否容許本地系統用戶訪問
local_umask=022:設置本地用戶所上傳文件的默認權限掩碼值 
local_root=/var/ftp:設置本地用戶的ftp根目錄(默認爲用戶的宿主目錄)
chroot_local_user=YES:是否將ftp本地用戶禁錮在宿主目錄中
local_max_rate=0:限制本地用戶的最大傳輸速率(0爲無限制),單位是字節/秒(B/s)
allow_writeable_chroot=YES:容許被限制用戶的主目錄具備寫權限
全局配置經常使用參數:
listen=YES:是否以獨立的運行方式監聽服務
listen_address=0.0.0.0:設置監聽ftp服務的IP地址
listen_port=21:設置監聽ftp服務的端口號
write_enable=YES: 啓用任何形式的寫入權限(好比上傳、刪除文件等)都須要開啓此項
download_enable=YES:是否容許下載文件(好比創建僅限於瀏覽、上傳的ftp服務器時可將其設置                                                                     爲"NO")
xferlog_enable=YES:啓用xferlog日誌,默認記錄到/var/log/xferlog
xferlog_std_format=YES: 啓用標準的xferlog日誌格式
connect_from_port_20=YES:容許服務器主動模式
pasv_enable=NO:禁止被動模式鏈接;默認容許被動模式鏈接
pam_service_name=vsftpd:設置用於用戶認證的PAM文件位置(/etc/pam.d/目錄中對應的文件名)
userlist_enable=YES:是否啓用user_list用戶列表文件
max_clients=0:最多容許多少客戶端同時鏈接(0爲無限制)
max_per_ip=0                                         對來自同一個IP地址的客戶端,最多容許多少個併發鏈接(0爲無限制)
tcp_wrappers=YES:是否啓用TCP_Wrappers主機訪問控制
虛擬用戶經常使用參數:
guest_username=test:指定映射的系統用戶名稱;
guest_enable=YES:是否啓用虛擬用戶;
allow_writeable_chroot=容許被限制用戶的主目錄具備寫權限(此項必須寫入,不然可能會報錯)
anon_world_readable_only=NO:容許用戶下載目錄內容
anon_other_write_enable=YES:容許匿名用戶有其餘寫入權限,如重命名、覆蓋及刪除文件等;
user_config_dir=/etc/vsftpd/vusers_dir:指定虛擬用戶獨立的配置文件目錄;

經常使用的配置差很少就這些(配置文件嚴格區分大小寫)服務器

搭建匿名用戶訪問FTP服務

1.賦予匿名用戶相應的權限

[root@localhost ~]# chown ftp /var/ftp/pub
//匿名用戶默認登陸的文件夾是/var/ftp/pub目錄、匿名用戶對應系統用戶ftp;因此將ftp系統用戶做用目錄的屬組

2.修改FTP服務的主配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
                  ………………                  //省略部份內容,填寫如下內容
anon_upload_enable=YES              //容許匿名用戶上傳文件
anon_mkdir_write_enable=YES       
anon_other_write_enable=YES       //容許匿名用戶具備寫入權限
[root@localhost ~]# systemctl restart vsftpd
//重啓FTP服務

3.客戶機訪問測試

Linux搭建ftp服務

搭建基於本地用戶訪問FTP服務

1.修改FTP服務配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
                  ………………                 //省略部份內容,添加如下內容
allow_writeable_chroot=YES           // 容許被限制用戶的主目錄具備寫權限
chroot_local_user=YES                   //將用戶禁錮在宿主目錄

2.建立系統用戶(用於測試)、重啓FTP服務

[root@localhost ~]# useradd xiaozhang
[root@localhost ~]# passwd xiaozhang 
[root@localhost ~]# systemctl restart vsftpd

3.客戶機訪問測試

Linux搭建ftp服務

建立虛擬用戶登陸FTP服務

1.建立文本文件,用於存放虛擬用戶的用戶名、密碼

[root@localhost ~]# vim /etc/vsftpd/123.txt        //添加如下內容
benet
123456
benet1
123456                
//奇數行爲用戶名、偶數行爲密碼(一行一個,不容許有空格)

2.建立Berkeley DB格式的數據庫文件

[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# db_load -T -t hash -f 123.txt vusers.db
//使用db_load工具建立用戶名、密碼的數據庫文件

3.爲虛擬用戶創建RAM認證文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.vu
//必須建立一個以「vu」結尾的文本文件,填寫如下內容:
auth    required        pam_userdb.so   db=/etc/vsftpd/vusers
account required        pam_userdb.so   db=/etc/vsftpd/vusers
//指定用戶類型、用戶屬性和驗證使用的模塊、db數據庫文件

4.新建一個系統用戶(用於測試)

[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin xiaoli
[root@localhost ~]# chmod 755 /var/ftproot/
//修改用戶宿主目錄的權限(這就是虛擬用戶登陸訪問的目錄)

5.修改ftp服務的主配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
              ………………                                  //省略部份內容,修改、添加如下內容
pam_service_name=vsftpd.vu                      //設置用於用戶認證的PAM文件位置
userlist_enable=YES                                    //啓用user_list用戶列表文件
tcp_wrappers=YES                                      //啓用TCP_Wrappers主機訪問控制
guest_username=xiaoli                                //來賓用戶對應的系統用戶
guest_enable=YES                                      //啓動來賓用戶
allow_writeable_chroot=YES                      //禁錮在宿主目錄
user_config_dir=/etc/vsftpd/vusers_dir       //指定虛擬用戶獨立的配置文件目錄

4.爲不一樣虛擬用戶創建獨立的配置文件

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir
[root@localhost ~]# vim /etc/vsftpd/vusers_dir/benet
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost ~]# vim /etc/vsftpd/vusers_dir/benet1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
//須要手動建立目錄及配置文件
[root@localhost ~]# systemctl restart vsftpd
//重啓FTP服務

5.客戶機測試訪問

Linux搭建ftp服務
自行測試!!!併發

實驗完成!!!app

相關文章
相關標籤/搜索