Centos FTP伺服器的原理以及虛擬使用者的配置

來源:互聯網
上載者:User

標籤:

前面筆者寫過一篇"FTP本機使用者"隨筆,那隻是一個案例,並沒有完整的寫出來作用、設定檔解析和原理,今天筆者將發布"FTP伺服器的原理以及虛擬使用者的配置"隨筆

FTP服務的原理

  1. FTP(File Transfer Protocol)是一個非常古老並且應用十分廣泛的檔案傳輸通訊協定,FTP協議是現今使用最為廣泛的網路檔案分享權限設定協議之一
  2. 現在也一直有在用著FTP協議來進行各種檔案的傳輸,FTP為人們提供了一種可靠的方式在網路上進行檔案的共用
  3. FTP是C/S架構的服務,擁有一個伺服器端和一個用戶端,FTP底層通過TCP協議來作為傳輸協議,所以FTP協議是一種可靠的檔案傳輸方式
  4. FTP提供了兩個連接埠號碼,20和21號連接埠,20號是資料介面,提供資料之間的傳輸,21號是命令介面,提供命令之間的傳輸
  5. FTP服務端與用戶端串連一般有兩種模式:主動模式和被動模式

  † PORT(主動模式)

  • FTP用戶端串連到FTP伺服器的21連接埠,發送使用者名稱和密碼登入,登入成功後要list列表或者讀取資料時,用戶端隨機開放一個連接埠(1024以上的就行),發送 PORT命令到FTP伺服器,告訴伺服器用戶端採用主動模式並開放連接埠
  • FTP伺服器收到PORT主動模式命令和連接埠號碼後,通過伺服器的20連接埠和用戶端開放的連接埠串連,進行發送資料

  † PASV(被動模式)

 

  • FTP用戶端串連到FTP伺服器的21連接埠,發送使用者名稱和密碼登入,登入成功後要list列表或者讀取資料時,發送PASV命令到FTP伺服器, 伺服器在本地隨機開放一個連接埠(1024以上),然後把開放的連接埠告訴用戶端, 用戶端再串連到伺服器開放的連接埠進行資料轉送

 兩種模式的區別和哪種比較適合

  • 主動模式和被動模式的不同簡單概述為:

  † 主動模式傳送資料時是"伺服器"串連到"用戶端"的連接埠

  † 被動模式傳送資料是“用戶端"串連到"伺服器"的連接埠

  • 通常還是使用的是被動串連的模式,因為伺服器端都有配置防火牆,而防火牆對於內網串連外網的連接埠一般是允許存取的,而外網來串連內網的連接埠則一般是有限制的,所以這時如果使用主動模式串連的話,連接埠可能被防火牆攔截,導致無法串連FTP服務
  • 如果要將內外的FTP通過NAT技術共用至外網,那麼肯定需要選擇被動串連才可行,可安全!

FTP服務程式"Vsftpd"的安裝

  • vsftpd是Very Secure FTP的簡寫形式,從名字可以看出,提供了非常安全的FTP服務!
  • 這款軟體是基於GPL開發的,被設計為Linux平台下穩定、快速、安全的FTP軟體,它還支援IPv6以及SSL加密
  • 它支援很多其他的 FTP 伺服器不支援的特徵:

  † 非常高的安全性需求

  † 頻寬節流設定

  † 建立虛擬使用者

  • 在Linux Cnetos 系統中預設是沒有安裝Ftp服務程式"Vsftpd"的、如果要想使用vsftpd實現FTP資料共用,首先需要安裝vsftpd軟體,該軟體已經在Centos光碟片中(RPM格式)備配,如果沒有光碟片,也可以使用線上方式安裝或者部署
  • 如果是本地安裝,那麼將光碟片掛載至/mnt目錄,配置本地yum源最後通過命令:yum -y install vsftpd 進行安裝
[[email protected] ~]# mount /dev/cdrom /mnt/              //掛載到/mnt目錄下mount: block device /dev/sr0 is write-protected, mounting read-only[[email protected] ~]# cd /etc/yum.repos.d/                //進入yum源定義檔案目錄[[email protected] yum.repos.d]# vim CentOS-Media.repo     //配置Yum源(副檔名是.repo) [c6-media]                            //[]中是Yum源唯一的ID,名稱可為任一字元串name=CentOS-$releasever - Media                       //指定Yum源的名稱,名稱可為任一字元串baseurl=file:///mnt                       //指定Yum源的URL路徑,這裡是我的光碟片掛載路徑#        file:///media/cdrom/#        file:///media/cdrecorder/gpgcheck=0                           //安裝軟體是否檢測簽名“0為禁用,1為啟用”enabled=1                             //是否啟用Yum源“0為禁用,1為啟用”gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6   //檢測簽名的密鑰檔案 :wq!                             //儲存並退出 [[email protected] yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak   //移動該檔案到目前的目錄並加上.bak,如果不注釋掉這個預設會線上安裝
[[email protected] ~]# yum -y install vsftpd
  • 如果是線上安裝,首先保證Linux作業系統可以訪問外網並且可以解析網域名稱
[[email protected] ~]# ping -c 2 www.baidu.comPING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.64 bytes from 61.135.169.121: icmp_seq=1 ttl=52 time=39.5 ms64 bytes from 61.135.169.121: icmp_seq=2 ttl=52 time=39.9 ms
[[email protected] ~]# yum -y install vsftpd[[email protected] ~]# chkconfig vsftpd on             //開機啟動[[email protected] ~]# service vsftpd start            //啟動服務[[email protected] ~]# netstat -ntulp | grep :21      //查看是否啟動成功並監聽tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      4117/vsftpd
  • 無論是Yum本地安裝,還是通過線上Yum安裝!都是安裝的RPM格式的軟體,該軟體的主程式是/usr/sbin/vsftpd  以下是vsftpd相關的核心檔案目錄列表說明
[[email protected] ~]# rpm -ql vsftpd             //查看vsftpd的安裝目錄/etc/logrotate.d/vsftpd  //日誌輪轉備份檔案/etc/pam.d/vsftpd  //基於PAM的vsftpd驗證設定檔/etc/rc.d/init.d/vsftpd  //vsftpd的開機檔案,可使用server調用/etc/vsftpd  //vsftpd的主目錄/etc/vsftpd/ftpusers  //預設的vsftpd的黑名單/etc/vsftpd/user_list  //可通過主設定檔來設定該檔案為黑名單或白名單/etc/vsftpd/vsftpd.conf  //vsftpd的主設定檔/usr/sbin/vsftpd  //vsftpd主程式/var/ftp  //預設vsftpd共用目錄

FTP服務程式"Vsftpd"的設定檔解析

  • 全域設定
listen=YES //是否監聽連接埠,獨立運行守護進程listen_port=21 //監聽入站ftp請求的連接埠號碼write_enable=YES  //是否允許寫操作,全域開關download_enable=YES  //如果設定為NO,則拒絕所有的下載請求dirmessage_enable=YES  //使用者進入目錄是否顯示訊息 //在登陸的目錄下建立一個.message檔案寫入登陸提示資訊xferlog_enable=YES //是否開啟xferlog日誌功能xferlog_std_format=YES //xferlog日誌格式connect_from_port_20=YES //使用主動串連,啟用20連接埠pasv_enable=YES //是否啟用被動串連pasv_max_port=5000 //被動串連最大連接埠號碼pasv_min_port=6000 //被動串連最小連接埠號碼max_clients=1000  //最大可允許1000個用戶端串連,0代表無限制max_per_ip=0  //每個用戶端的最大串連限制,0代表無限制tcp_wrappers=YES  //是否啟用tcp_wrappersguest_enable=YES  //如果為YES 則所有的非匿名登入都映射為guest_username指定賬戶guest_username=ftp   //設定來賓使用者user_config_dir/etc/vsftpd/conf  //指定目錄,在該目錄下可以為使用者佈建獨立的設定檔選項dual_log_enable=NO  //是否啟用雙日誌功能,生存兩個記錄檔
  • 本機使用者設定
local_enable=YES   //是否啟用本地賬戶功能local_max_rate=500000  //FTP伺服器的匿名使用者最大傳輸速率 B/s,0為無限制local_umask=077  //本地賬戶許可權掩碼chroot_local_user=YES  //為YES時在 chroot_list中不給使用者切換到上級目錄,其他都給與切換chroot_list_enable=NO                //為YES時 在 chroot_list中給使用者切換到上級目錄,其他的不允許 //當這兩個都為YES時 chroot_list_enable 優先 chroot_list_file=/etc/vsftpd/chroot_list         //chroot_list的檔案目標userlist_enable=YES  //是否啟用userlist使用者列表userlist_deny=YES  //是否禁用userlist檔案中的賬戶訪問ftplocal_root=/ftp/common  //本地賬戶訪問的FTP根路徑
  • 匿名使用者設定
anonymous_enable=YES         //是否允許匿名使用者登入anon_mkdir_writ_enable=YES //是否允許匿名賬戶建立目錄,預設禁止anon_other_writ_enable=YES //是否允許匿名賬戶進行所有其他寫操作anon_umask=077 //匿名上傳許可權掩碼anon_root=/var/ftp         //匿名預設登陸的目錄anon_upload_enable=YES         //是否允許匿名使用者上傳檔案,則開啟全域write_enable=YESchown_uploads=YES //是否允許匿名使用者改變上傳檔案的屬主chown_usernamed=xxx //屬主改為xxx"與上面配套使用"no_anon_password=YES         //若是啟動這項功能,則使用匿名登入時,不會詢問密碼anon_max_rate=200000  //FTP伺服器的匿名使用者最大傳輸速率 B/s,0為無限制
  • vsfptd預設是不給匿名檔案給予W許可權的,所以想要匿名使用者上傳檔案,就需要在匿名檔案下建立一個新的檔案給予777許可權就可以了  
  • 點擊下載主設定檔解析

FTP使用者和檔案分享權限設定

  • vsftpd是通過使用使用者來作為管理單位的,想要訪問某個ftp的共用檔案,必須要以某一特定的使用者身份登陸,我們可以配置一下幾種類型的使用者

 

  

  

 

 

 

Centos FTP伺服器的原理以及虛擬使用者的配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.