十、FTP服務(wù)器配置和管理

10.1、FTP服務(wù)簡介

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比桑日網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式桑日網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋桑日地區(qū)。費(fèi)用合理售后完善,10多年實體公司更值得信賴。

  FTP是Internet上使用非常廣泛的一種通信協(xié)議,用于在不同的主機(jī)之間進(jìn)行文件傳輸。Linux系統(tǒng)下常用的FTP服務(wù)器軟件包括有wu-ftpd;vsftpd(Very Secure ftp Daemon);proftpd;pureftpd等??蛻舳塑浖?/p>

  CLI:ftp;lftp;(wget ,lftpget)下載工具,非交互式

  GUI: gftpd ;FlashFXP;Cuteftp;Filezilla

  FTP采用C/S的工作模式,通過TCP協(xié)議建立客戶端和服務(wù)器之間的連接。但與其他大多數(shù)的應(yīng)用協(xié)議不同,F(xiàn)TP協(xié)議在客戶端和服務(wù)器之間建立了兩套通信鏈路,分別是控制鏈路和數(shù)據(jù)鏈路。其中,控制鏈路負(fù)責(zé)FTP會話過程中FTP命令的發(fā)送和接收,數(shù)據(jù)鏈路則負(fù)責(zé)數(shù)據(jù)的傳輸。FTP客戶端與服務(wù)器之間的通信過程如下所示:

1、用戶使用FTP協(xié)議的客戶機(jī)程序,連接到遠(yuǎn)程的FTP服務(wù)器程序上

2、用戶使用客戶端程序進(jìn)行FTP文件的上傳或下載,F(xiàn)TP客戶端程序通過控制鏈路向FTP發(fā)送相應(yīng)的控制命令

3、服務(wù)器程序接收并執(zhí)行用戶所發(fā)出的命令

4、FTP服務(wù)器將執(zhí)行結(jié)果返回到客戶端

 默認(rèn)情況下,F(xiàn)TP服務(wù)器程序使用兩個預(yù)分配端口號20和21,分別用于傳輸數(shù)據(jù)鏈路和控制鏈路。但是傳輸數(shù)據(jù)又可以分為主動模式與被動模式,其數(shù)據(jù)傳輸端口有所不同。

  主動模式工作的原理:FTP客戶端連接到FTP服務(wù)器的21端口,發(fā)送用戶名和密碼登錄,登錄成功后要list列表或者讀取數(shù)據(jù)時,客戶端隨機(jī)開放一個端口(1024以上),發(fā)送PORT命令到FTP服務(wù)器 ,告訴服務(wù)器客戶端采用主動模式并開放端口;FTP服務(wù)器收到PORT主動模式命令和端口號后,通過服務(wù)器的20端口和客戶端開放的端口連接,發(fā)送數(shù)據(jù),原理如下圖:

十、FTP服務(wù)器配置和管理

 被動模式工作原理:FTP客戶端連接到FTP服務(wù)器的21端口,發(fā)送用戶名和密碼登錄,登錄成功后要list列表或者讀取數(shù)據(jù)時,發(fā)送PASV命令到FTP服務(wù)器, 服務(wù)器在本地隨機(jī)開放一個端口(1024以上 ),然后把開放的端口告訴客戶端,客戶端再連接到服務(wù)器開放的端口進(jìn)行數(shù)據(jù)傳輸,原理如下圖:

十、FTP服務(wù)器配置和管理

參考:https://my.oschina.net/binny/blog/17469

  10.2、vsftpd服務(wù)器的安裝與配置

  vsftpd可以通過rpm包或者源碼安裝,通過rpm安裝只需使用yum命令即可,這里介紹源碼安裝。其官方地址為http://vsftpd.beasts.org/,這里以3.0.2版本介紹vsftpd的安裝與配置。

文件的組成:

/etc/vsftpd: 配置文件目錄

/etc/rc.d/init.d/vsftpd: 服務(wù)腳本

/usr/sbin/vsftpd: 主程序

/var/ftp:數(shù)據(jù)文件目錄(匿名用戶訪問目錄)

/etc/pam.d/vsftpd: 認(rèn)證文件 pam(Plugable Authentication Module)插件式認(rèn)證模塊

  模塊化庫文件:/lib64/security/pam*.so

  認(rèn)證配置文件:/etc/pam.conf和/etc/pam.d/*

基本配置:/etc/vsftpd/vsftpd.conf

[root@mylinux vsftpd-3.0.2]# useradd nobody              #默認(rèn)配置需要使用的用戶
[root@mylinux vsftpd-3.0.2]# mkdir /usr/share/empty      #默認(rèn)配置需要使用的目錄
[root@mylinux vsftpd-3.0.2]# mkdir /var/ftp              #匿名用戶需要使用的目錄
[root@mylinux vsftpd-3.0.2]# useradd -d /var/ftp/ ftp
[root@mylinux vsftpd-3.0.2]# chown root.root /var/ftp/
[root@mylinux vsftpd-3.0.2]# chmod  og-w /var/ftp/

[root@mylinux app]# tar xf vsftpd-3.0.2.tar.gz 
[root@mylinux app]# cd vsftpd-3.0.2
[root@mylinux vsftpd-3.0.2]# make && make install
[root@mylinux vsftpd-3.0.2]# cp vsftpd.conf /etc/         #復(fù)制配置文件到
  • 啟動和關(guān)閉vsftpd

  vsftpd支持兩種啟動方式:xinetd和standalone。其中,xinetd是通過xinetd進(jìn)程來啟動和關(guān)閉vsftpd服務(wù),這是vsftpd默認(rèn)啟動方式。standalone方式則是采用獨(dú)立進(jìn)程啟動和關(guān)閉,與普通程序的啟動方式一樣。

xinetd方式:

  采用這種方式時,vsftpd不能單獨(dú)管理,當(dāng)vsftpd需要重啟時,也必須重啟整個xinetd服務(wù)器。

standalone方式:

  使用這種方式時,vsftpd服務(wù)將作為單獨(dú)的進(jìn)程來啟動和關(guān)閉,配置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   #關(guān)閉自啟動服務(wù)
[root@mylinux vsftpd-3.0.2]# /usr/local/sbin/vsftpd &         #啟動
[1] 1926

登錄ftp:

[root@mylinux vsftpd-3.0.2]# ftp localhost       #登錄本機(jī)
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服務(wù)器的配置主要通過其主配置文件/etc/vsftpd.conf來完成。該文件以'#'作為注釋,每個選項一行,格式為'選項=值'。

常用選項:

匿名用戶的配置:

  anonymous_enable=YES登陸權(quán)限

  anon_upload_enable=YES上傳權(quán)限

  anon_other_write_enable=YES刪除權(quán)限

  anon_mkdir_write_enable=YES創(chuàng)建目錄

  啟用寫入功能時,ftp用戶對相應(yīng)的本地文件系統(tǒng)也有相應(yīng)的寫入權(quán)限;生效的權(quán)限取決于文件系統(tǒng)權(quán)限和服務(wù)權(quán)限的交集。

禁錮用戶于其家目錄中:

  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可訪問的目錄下創(chuàng)建.messages文件

控制登錄用戶的機(jī)制:

  /etc/vsftpd/ftpusers中的用戶都不允許使用ftp服務(wù), 這是在/etc/pam.d/vsftpd中定義。

user_list配置文件有兩種用法:

  黑名單:

    userlist_enable=YES

    userlist_deny=YES

  白名單:

    userlist_enable=YES

    userlist_deny=NO

連接限制:

  max_clients: 最大并發(fā)連接數(shù)

  max_per_ip: 每IP可同時發(fā)起并發(fā)請求

傳輸速率:

  anon_max_rate: 匿名用戶的最大傳輸速率,單位是“字節(jié)/秒”;

  local_max_rate: 本地用戶的最大傳輸速率,單位是“字節(jié)/秒”

上傳文件的umask:

  anno_umask: 匿名用戶上傳文件的umask;

  local_umask: 本地用戶上傳文件的umask;

修改匿名用戶上傳文件的屬主和屬組:

  chown_uploads=YES

  chown_username=someuser

ftp的系統(tǒng)用戶:

  匿名用戶 --> 系統(tǒng)用戶: anonymous_enable

  系統(tǒng)用戶:local_enable

  虛擬用戶:所有的虛擬用戶會映射會一個系統(tǒng)用戶,訪問時的文件目錄是為此系統(tǒng)用戶的家目錄。

用戶的存放位置:

  hash編碼的文件:奇數(shù)行為用戶名,偶數(shù)行為密碼

  關(guān)系型數(shù)據(jù)庫:pam-MySQL實現(xiàn)認(rèn)證

10.2、vsftpd基于pam-mysql的認(rèn)證方式

1、安裝mysql和pam_mysql

[root@localhost home]# yum -y install vsftpd mysql-server mysql-devel pam_mysql

2、準(zhǔn)備數(shù)據(jù)庫及相關(guān)表

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、添加測試的虛擬用戶,為了安全起見應(yīng)該使用PASSWORD函數(shù)加密后存儲。

mysql> insert into users(name,password) values('tom',password('123456'));
mysql> insert into users(name,password) values('jerry',password('123456'));

4、建立pam認(rèn)證所需文件#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=2

  pam_mysql.so基于unix sock連接mysql服務(wù)器時可能會出問題,此時,建議授權(quán)一個可遠(yuǎn)程連接的mysql并訪問vsftpd數(shù)據(jù)庫的用戶。

5、修改vsftpd的配置文件,使其適應(yīng)mysql認(rèn)證,建立虛擬用戶映射的系統(tǒng)用戶及對應(yīng)的目錄

[root@localhost home]# useradd -s /sbin/nologin -d /var/ftproot vuser
[root@localhost home]# chmod go+rx /var/ftproot

確保/etc/vsftpd.conf中已經(jīng)啟用了以下選項

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.mysql

6、啟動vsftpd服務(wù)

[root@localhost home]# service vsftpd start
Starting vsftpd for vsftpd: [  OK  ]
[root@localhost home]# chkconfig vsftpd on

7、配置虛擬用戶具有不同的訪問權(quán)限

配置vsftpd為虛擬用戶使用配置文件目錄

# vim vsftpd.conf

添加

user_config_dir=/etc/vsftpd/vusers_config

創(chuàng)建所需要目錄,并為虛擬用戶提供配置文件

# mkdir /etc/vsftpd/vusers_config/
# cd /etc/vsftpd/vusers_config/
# touch tom jerry

  配置虛擬用戶的訪問權(quán)限,虛擬用戶對vsftpd服務(wù)的訪問權(quán)限是通過匿名用戶的相關(guān)指令進(jìn)行的。如果需要讓tom用戶具有上傳文件的權(quán)限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下選項即可。

anon_upload_enable={YES|NO}
anon_mkdir_write_enable={YES|NO}
anon_other_write_enable={YES|NO}

分享標(biāo)題:十、FTP服務(wù)器配置和管理
URL分享:http://bm7419.com/article32/pccisc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、動態(tài)網(wǎng)站網(wǎng)站制作、網(wǎng)站維護(hù)、面包屑導(dǎo)航、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名