10.1、FTP服務簡介
創新互聯建站主營尼開遠網站建設的網絡公司,主營網站建設方案,App定制開發,尼開遠h5成都微信小程序搭建,尼開遠網站營銷推廣歡迎尼開遠等地區企業咨詢FTP是Internet上使用非常廣泛的一種通信協議,用于在不同的主機之間進行文件傳輸。Linux系統下常用的FTP服務器軟件包括有wu-ftpd;vsftpd(Very Secure ftp Daemon);proftpd;pureftpd等。客戶端軟件有
CLI:ftp;lftp;(wget ,lftpget)下載工具,非交互式 GUI: gftpd ;FlashFXP;Cuteftp;Filezilla |
FTP采用C/S的工作模式,通過TCP協議建立客戶端和服務器之間的連接。但與其他大多數的應用協議不同,FTP協議在客戶端和服務器之間建立了兩套通信鏈路,分別是控制鏈路和數據鏈路。其中,控制鏈路負責FTP會話過程中FTP命令的發送和接收,數據鏈路則負責數據的傳輸。FTP客戶端與服務器之間的通信過程如下所示:
1、用戶使用FTP協議的客戶機程序,連接到遠程的FTP服務器程序上 2、用戶使用客戶端程序進行FTP文件的上傳或下載,FTP客戶端程序通過控制鏈路向FTP發送相應的控制命令 3、服務器程序接收并執行用戶所發出的命令 4、FTP服務器將執行結果返回到客戶端 |
默認情況下,FTP服務器程序使用兩個預分配端口號20和21,分別用于傳輸數據鏈路和控制鏈路。但是傳輸數據又可以分為主動模式與被動模式,其數據傳輸端口有所不同。
主動模式工作的原理:FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功后要list列表或者讀取數據時,客戶端隨機開放一個端口(1024以上),發送PORT命令到FTP服務器 ,告訴服務器客戶端采用主動模式并開放端口;FTP服務器收到PORT主動模式命令和端口號后,通過服務器的20端口和客戶端開放的端口連接,發送數據,原理如下圖:
被動模式工作原理:FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功后要list列表或者讀取數據時,發送PASV命令到FTP服務器, 服務器在本地隨機開放一個端口(1024以上 ),然后把開放的端口告訴客戶端,客戶端再連接到服務器開放的端口進行數據傳輸,原理如下圖:
參考:https://my.oschina.net/binny/blog/17469
10.2、vsftpd服務器的安裝與配置
vsftpd可以通過rpm包或者源碼安裝,通過rpm安裝只需使用yum命令即可,這里介紹源碼安裝。其官方地址為http://vsftpd.beasts.org/,這里以3.0.2版本介紹vsftpd的安裝與配置。
文件的組成:
/etc/vsftpd: 配置文件目錄 /etc/rc.d/init.d/vsftpd: 服務腳本 /usr/sbin/vsftpd: 主程序 /var/ftp:數據文件目錄(匿名用戶訪問目錄) /etc/pam.d/vsftpd: 認證文件 pam(Plugable Authentication Module)插件式認證模塊 模塊化庫文件:/lib64/security/pam*.so 認證配置文件:/etc/pam.conf和/etc/pam.d/* 基本配置:/etc/vsftpd/vsftpd.conf |
啟動和關閉vsftpd
vsftpd支持兩種啟動方式:xinetd和standalone。其中,xinetd是通過xinetd進程來啟動和關閉vsftpd服務,這是vsftpd默認啟動方式。standalone方式則是采用獨立進程啟動和關閉,與普通程序的啟動方式一樣。
xinetd方式:
采用這種方式時,vsftpd不能單獨管理,當vsftpd需要重啟時,也必須重啟整個xinetd服務器。
standalone方式:
使用這種方式時,vsftpd服務將作為單獨的進程來啟動和關閉,配置standalone啟動方式步驟為:
[root@mylinux vsftpd-3.0.2]# vim /etc/xinetd.d/vsftpd #將diabale選項改為yes service ftp { socket_type = stream wait = no user = root server = /usr/local/sbin/vsftpd # server_args = # log_on_success += DURATION USERID # log_on_failure += USERID nice = 10 disable = yes } [root@mylinux vsftpd-3.0.2]# vim /etc/vsftpd.conf #指定standalone啟動方式 listen=YES [root@mylinux vsftpd-3.0.2]# chkconfig vsftpd --level 3 off #關閉自啟動服務 [root@mylinux vsftpd-3.0.2]# /usr/local/sbin/vsftpd & #啟動 [1] 1926登錄ftp:
[root@mylinux vsftpd-3.0.2]# ftp localhost #登錄本機 Trying ::1... ftp: connect to address ::1Connection refused Trying 127.0.0.1... Connected to localhost (127.0.0.1). 220 (vsFTPd 3.0.2) Name (localhost:root): anonymous #匿名用戶登錄 331 Please specify the password. Password: #輸入密碼,匿名用戶可以無需密碼 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (127,0,0,1,143,37). 150 Here comes the directory listing. 226 Directory send OK. ftp> quit #退出 221 Goodbye. [root@mylinux vsftpd-3.0.2]#vsftpd.conf配置文件
vsftpd服務器的配置主要通過其主配置文件/etc/vsftpd.conf來完成。該文件以'#'作為注釋,每個選項一行,格式為'選項=值'。
常用選項:
匿名用戶的配置: anonymous_enable=YES登陸權限 anon_upload_enable=YES上傳權限 anon_other_write_enable=YES刪除權限 anon_mkdir_write_enable=YES創建目錄 啟用寫入功能時,ftp用戶對相應的本地文件系統也有相應的寫入權限;生效的權限取決于文件系統權限和服務權限的交集。 禁錮用戶于其家目錄中: chroot_local_user={Yes|No} chroot_list_enable={YES|NO} 只禁錮列表中的用戶在家目錄 chroot_list_file=/etc/vsftpd/chroot_list 禁錮用戶列表 歡迎信息的定義: ftp_banner=some string 或者banner_file=/path/to/some_banner_file(文件中寫歡迎信息) dirmessage_enable=yes(切換目錄時,目錄下的歡迎信息) 在ftp可訪問的目錄下創建.messages文件 控制登錄用戶的機制: /etc/vsftpd/ftpusers中的用戶都不允許使用ftp服務, 這是在/etc/pam.d/vsftpd中定義。 user_list配置文件有兩種用法: 黑名單: userlist_enable=YES userlist_deny=YES 白名單: userlist_enable=YES userlist_deny=NO 連接限制: max_clients: 大并發連接數 max_per_ip: 每IP可同時發起并發請求 傳輸速率: anon_max_rate: 匿名用戶的大傳輸速率,單位是“字節/秒”; local_max_rate: 本地用戶的大傳輸速率,單位是“字節/秒” 上傳文件的umask: anno_umask: 匿名用戶上傳文件的umask; local_umask: 本地用戶上傳文件的umask; 修改匿名用戶上傳文件的屬主和屬組: chown_uploads=YES chown_username=someuser |
ftp的系統用戶:
匿名用戶 --> 系統用戶: anonymous_enable
系統用戶:local_enable
虛擬用戶:所有的虛擬用戶會映射會一個系統用戶,訪問時的文件目錄是為此系統用戶的家目錄。
用戶的存放位置:
hash編碼的文件:奇數行為用戶名,偶數行為密碼
關系型數據庫:pam-mysql實現認證
10.2、vsftpd基于pam-mysql的認證方式
1、安裝mysql和pam_mysql
[root@localhost home]# yum -y install vsftpd mysql-server mysql-devel pam_mysql2、準備數據庫及相關表
mysql> create database vsftpd; mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'mylinux'; mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'mylinux'; mysql> flush privileges; mysql> use vsftpd; mysql> create table users ( -> id int AUTO_INCREMENT NOT NULL, -> name char(20) binary NOT NULL, -> password char(48) binary NOT NULL, -> primary key(id) -> );3、添加測試的虛擬用戶,為了安全起見應該使用PASSWORD函數加密后存儲。
mysql> insert into users(name,password) values('tom',password('123456')); mysql> insert into users(name,password) values('jerry',password('123456'));4、建立pam認證所需文件#vi /etc/pam.d/vsftpd.mysql
auth required /lib/security/pam_mysql.so user=vsftpd passwd=mylinux host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required /lib/security/pam_mysql.so user=vsftpd passwd=mylinux host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2pam_mysql.so基于unix sock連接mysql服務器時可能會出問題,此時,建議授權一個可遠程連接的mysql并訪問vsftpd數據庫的用戶。
5、修改vsftpd的配置文件,使其適應mysql認證,建立虛擬用戶映射的系統用戶及對應的目錄
[root@localhost home]# useradd -s /sbin/nologin -d /var/ftproot vuser [root@localhost home]# chmod go+rx /var/ftproot確保/etc/vsftpd.conf中已經啟用了以下選項
anonymous_enable=YES local_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO chroot_local_user=YES而后添加以下選項
guest_enable=YES guest_username=vuser并確保pam_service_name選項的值如下所示
pam_service_name=vsftpd.mysql6、啟動vsftpd服務
[root@localhost home]# service vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@localhost home]# chkconfig vsftpd on7、配置虛擬用戶具有不同的訪問權限
配置vsftpd為虛擬用戶使用配置文件目錄
# vim vsftpd.conf添加
user_config_dir=/etc/vsftpd/vusers_config創建所需要目錄,并為虛擬用戶提供配置文件
# mkdir /etc/vsftpd/vusers_config/ # cd /etc/vsftpd/vusers_config/ # touch tom jerry配置虛擬用戶的訪問權限,虛擬用戶對vsftpd服務的訪問權限是通過匿名用戶的相關指令進行的。如果需要讓tom用戶具有上傳文件的權限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下選項即可。
anon_upload_enable={YES|NO} anon_mkdir_write_enable={YES|NO} anon_other_write_enable={YES|NO}另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:十、FTP服務器配置和管理-創新互聯
文章URL:http://vcdvsql.cn/article46/phohg.html
成都網站建設公司_創新互聯,為您提供小程序開發、外貿建站、關鍵詞優化、域名注冊、電子商務、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯