详解“FTP文件传输服务”安装配置实例
“FTP文件傳輸服務(wù)”安裝配置實例
?
家住海邊喜歡浪:zhang789.blog.51cto.com
目錄
簡介
ftp工作原理
常見的FTP服務(wù)
Vsftpd服務(wù)器的安裝
Vsftpd.conf配置文件詳解
配置FTP服務(wù)器實例
實例:配置匿名用戶
實例:配置本地用戶登錄
實例:配置虛擬用戶登錄(MySQL認證)
實例:控制用戶登錄
實例:設(shè)置歡迎信息
分析vsftpd日志管理
FTP服務(wù)器配置與管理
簡介
FTP 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱,而中文簡稱為“文傳協(xié)議”。用于Internet上的控制文件的雙向傳輸。同時,它也是一個應(yīng)用程序(Application)。基于不同的操作系統(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議以傳輸文件。
互聯(lián)網(wǎng)上提供文件存儲和訪問服務(wù)的計算機,他們依照的是FTP協(xié)議提供服務(wù)!支持FTP協(xié)議的服務(wù)器就是FTP服務(wù)器!FTP協(xié)議提供存儲和傳輸服務(wù)的一套協(xié)議!
下載"(Download)和"上傳"(Upload)。”下載”文件就是從遠程主機拷貝文件至自己的計算機上;”上傳”文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。
ftp工作原理
ftp采用客戶端/服務(wù)端的工作模式(C/S結(jié)構(gòu)),通過TCP協(xié)議建立客戶端和服務(wù)器之間的連接,但與其他大多數(shù)應(yīng)用協(xié)議不同,FTP協(xié)議在客戶端和服務(wù)端之間建立了兩條通信鏈路,分別是控制鏈路和數(shù)據(jù)鏈路,其中,控制鏈路負責(zé)FTP會話過程中FTP命令的發(fā)送和接收,數(shù)據(jù)鏈路則負責(zé)數(shù)據(jù)的傳輸
FTP會話包含了兩個通道,控制通道和數(shù)據(jù)通道,FTP的工作有兩種方式,一種是主動模式,一種是被動模式,以FTPServer為參照物,主動模式,服務(wù)器主動連接客戶端傳輸,被動模式,等待客戶端的的連接?
(無論是主動模式還是被動模式,首先的控制通道都是先建立起來的,只是在數(shù)據(jù)傳輸模式上的區(qū)別)
主動模式
工作的原理: FTP客戶端連接到FTP服務(wù)器的21端口,發(fā)送用戶名和密碼,客戶端隨機開放一個端口(1024以上),發(fā)送 PORT命令到FTP服務(wù)器,告訴服務(wù)器客戶端采用主動模式并開放端口;FTP服務(wù)器收到PORT主動模式命令和端口號后,通過服務(wù)器的20端口和客戶端開放的端口連接,發(fā)送數(shù)據(jù),原理如下圖:被動模式
PASV是Passive的縮寫,中文成為被動模式,工作原理:FTP客戶端連接到FTP服務(wù)器的21端口,發(fā)送用戶名和密碼,發(fā)送PASV命令到FTP服務(wù)器, 服務(wù)器在本地隨機開放一個端口(1024以上),然后把開放的端口告訴客戶端, 客戶端再連接到服務(wù)器開放的端口進行數(shù)據(jù)傳輸,原理如下圖:
工作端口和模式
20號端口:數(shù)據(jù)傳輸端口 ftp-data?
21號端口:指令傳輸端口
數(shù)據(jù)傳輸原理: FTP的傳輸有兩種方式:ASCII、二進制。
ASCII傳輸方式
假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當(dāng)文件傳輸時ftp通常會自動地調(diào)整文件的內(nèi)容以便于把文件解釋成另外那臺計算機存儲文本文件的格式。?
但是常常有這樣的情況,用戶正在傳輸?shù)奈募牟皇俏谋疚募?#xff0c;它們可能是程序,數(shù)據(jù)庫,字處理文件或者壓縮文件。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝。
二進制傳輸模式
在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應(yīng)的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執(zhí)行文件到Windows系統(tǒng),在對方系統(tǒng)上,此文件不能執(zhí)行。?
如在ASCII方式下傳輸二進制文件,即使不需要也仍會轉(zhuǎn)譯。這會損壞數(shù)據(jù)。(ASCII方式一般假設(shè)每一字符的第一有效位無意義,因為ASCII字符組合不使用它。如果傳輸二進制文件,所有的位都是重要的。)
常見的FTP服務(wù)
Windows下:Serv-U FTP Server?
Linux下有代表性的FTP服務(wù)器軟件是Wu-FTP、ProFTP?及vsftpd。Wu-FTP(Washington University FTP)是由美國華盛頓大學(xué)開發(fā)的、以效率和穩(wěn)定性為參考量的FTP軟件。它的功能強大,配置較復(fù)雜,由于開發(fā)時間較早,應(yīng)用十分廣泛,也因此成為***們主要的***目標。Wu-FTP的早期各級版本不斷出現(xiàn)安全漏洞,系統(tǒng)管理員不得不因安全因素而經(jīng)常對其進行升級。ProFTP針對Wu-FTP的弱項而開發(fā),除了在安全性方面進行了改進外,還具備設(shè)置簡單的特點,并提供了一些Wu-FTP沒有的功能,大大簡化了架設(shè)和管理FTP服務(wù)器的工作。vsftpd?則憑借在安全性方面的出色表現(xiàn),被很多大型網(wǎng)站廣為采用。
Vsftpd服務(wù)器的安裝
軟件包
vsftpd-2.2.2-11.el6_4.1.x86_64.rpm ? ? ? ? ? ? ? ? ? ? ? //服務(wù)端軟件包 ?ftp-0.17-54.el6.x86_64.rpm ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//客戶端軟件包
lftp-4.0.9-1.el6.x86_64.rpm ? ? ? ? ? ? ? ? ? ? ? ? ? ? //類似ftp的客戶端軟件包,具有增強功能
1、安裝vsftpd軟件
[root@localhost ~]# yum -y install vsftpd2、相關(guān)配置文件
[root@localhost ~]# cd /etc/vsftpd/[root@localhost vsftpd]# ls
ftpusers ?user_list ?vsftpd.conf ?vsftpd_conf_migrate.sh
/etc/vsftpd/vsftpd.conf ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //主配置文件,核心配置文件
/etc/vsftpd/ftpusers ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//黑名單,這個里面的用戶不允許訪問FTP服務(wù)器
/etc/vsftpd/user_list ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //白名單,允許訪問FTP服務(wù)器的用戶列表
3、啟動服務(wù)
服務(wù)啟動與關(guān)閉[root@localhost vsftpd]# chkconfig vsftpd on
[root@localhost vsftpd]# service vsftpd start
Starting vsftpd for vsftpd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
[root@localhost vsftpd]# netstat -antup | grep ftp
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:21 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?2579/vsftpd ? ? ? ?
tcp ? ? ? ?0 ? ? ?0 10.1.252.97:21 ? ? ? ? ? ? ?10.1.250.64:54777 ? ? ? ? ? ESTABLISHED 2582/vsftpd
Vsftpd.conf配置文件詳解
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf#################用戶登陸控制##############
anonymous_enable=YES ? ? ? ? ? ? ? ? ? ? ? ?#接受匿名用戶
no_anon_password=YES ? ? ? ? ? ? ? ? ? ? ? ?#匿名用戶login時不詢問口令
anon_root=(none) ? ? ? ? ? ? ? ? ? ? ? ? ? ? #匿名用戶主目錄
local_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ? #接受本地用戶
local_root=(none) ? ? ? ? ? ? ? ? ? ? ? ? ? ? #本地用戶主目錄 ? ? ? ? ? ? ? ? ? ? ? ?
deny_email_enable=YES ? #如果匿名用戶需要密碼,那么使用banned_email_file里面的電子郵件地址的用戶不能登錄
check_shell=YES ? ? ? ? ? ? ? ? ? ? ? ? ?#僅在沒有pam驗證版本時有用,是否檢查用戶有一個有效的shell來登錄
userlist_enable=YES ? ? ? ? ? ? ? ? ? ? ?#若啟用此選項,userlist_deny選項才被啟動
userlist_deny=NO ? ?#若為YES,則userlist_file中的用戶將不能登錄,為NO則只有userlist_file的用戶可以登錄
#如果和chroot_local_user一起開啟,那么用戶鎖定的目錄來自/etc/passwd每個用戶指定的目錄
passwd_chroot_enable=NO ? ? ? ? ? ? ? ? #切換目錄密碼支持
ftp_username=FTP ? ? ? ? ? ? ? ? ? ? ? ? #定義匿名登入的使用者名稱。默認值為ftp。
#################用戶權(quán)限控制###############
write_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ?#可以上傳(全局控制).
local_umask=022 ? ? ? ? ? ? ? ? ? ? ? ? #本地用戶上傳文件的umask
file_open_mode=0666 ? ? ? ? ? ? ? ? ? ? #上傳文件的權(quán)限配合umask使用
anon_upload_enable=NO ? ? ? ? ? ? ? ? ? #匿名用戶可以上傳
anon_mkdir_write_enable=NO ? ? ? ? ? ? ?#匿名用戶可以建目錄
anon_other_write_enable=NO ? ? ? ? ? ? ?#匿名用戶修改刪除
anon_world_readable_only=YES ? ? ? ? ? ?#如果設(shè)為YES,匿名登入者會被允許下載可閱讀的檔案。默認值為YES。
#guest_enable=NO ? ? ? ? ? ? ? ?#如果開啟,那么所有非匿名登陸的用戶名都會被切換成guest_username指定的用戶名
chown_uploads=YES ? ? ? ? ? ? ? ? ? ? ? ? ? #所有匿名上傳的文件的所屬用戶將會被更改成chown_username
chown_username=lightwiter ? ? ? ? ? ? ? #匿名上傳文件所屬用戶名
chroot_list_enable=YES ? ? ? ? ?#如果啟動這項功能,則所有列在chroot_list_file之中的使用者不能更改根目錄
async_abor_enable=YES ? ? ? ? ? ? ? ? ? #允許使用"async ABOR"命令,一般不用
ascii_upload_enable=YES ? ? ? ? ? ? ? ? #使用ASSCII上傳
ascii_download_enable=YES ? ? ? ? ? ? ? #用ASCII 模式下載
secure_chroot_dir=/usr/share/empty ? ? ?#這個選項必須指定一個空的數(shù)據(jù)夾且任何登入者都不能有寫入的權(quán)限,當(dāng)
vsftpd不需要file system 的權(quán)限時,就會將使用者限制在此數(shù)據(jù)夾中 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
默認值為/usr/share/empty
###################超時設(shè)置##################
idle_session_timeout=600 ? ? ? ? ? ? ? ? ? ?#空閑連接超時
data_connection_timeout=120 ? ? ? ? ? ? #數(shù)據(jù)傳輸超時
ACCEPT_TIMEOUT=60 ? ? ? ? ? ? ? ? ? ? ? ? ? #PAVS請求超時
connect_timeout=60 ? ? ? ? ? ? ? ? ? ? ?#PROT模式連接超時
################服務(wù)器功能選項###############
xferlog_enable=YES ? ? ? ? ? ? ? ? ? ? ?#開啟日記功能
xferlog_std_format=YES ? ? ? ? ? ? ? ? ?#使用標準格式
#log_ftp_protocol=NO ? ? ? #當(dāng)xferlog_std_format關(guān)閉且本選項開啟時,記錄所有ftp請求和回復(fù),當(dāng)調(diào)試比較有用.
pasv_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? #允許使用pasv模式
#pasv_promiscuous=NO ? ? ? ? ? ? ? ? ? ? ? ?#關(guān)閉安全檢查,Pasv向
#port_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ?#允許使用port模式
#prot_promiscuous ? ? ? ? ? ? ? ? ? ? ? ? ? #關(guān)閉安全檢查,Port向
tcp_wrappers=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ?#開啟tcp_wrappers支持
pam_service_name=vsftpd ? ? ? ? ? ? ? ? #定義PAM 所使用的名稱,預(yù)設(shè)為vsftpd
nopriv_user=nobody ? ? ? ? ? ? ? ? ? ? ?#當(dāng)服務(wù)器運行于最底層時使用的用戶名
pasv_address=(none) ? ? ? ? ? ? ? ? #使vsftpd在pasv命令回復(fù)時跳轉(zhuǎn)到指定的IP地址.(服務(wù)器聯(lián)接跳轉(zhuǎn)?)
#################服務(wù)器性能選項##############
#ls_recurse_enable=YES ? ? ? ? ? ? ? #是否能使用ls -R命令以防止浪費大量的服務(wù)器資源
#one_process_model ? ? ? ? ? ? ? ? ? ?#是否使用單進程模式
listen=YES ? ? ?#綁定到listen_port指定的端口,既然都綁定了也就是每時都開著的,就是那個什么standalone模式
text_userdb_names=NO ? ? ? ? ? ? ? ? ? ? ?#當(dāng)使用者登入后使用ls -al 之類的指令查詢該檔案的管理權(quán)時,預(yù)設(shè)會出
現(xiàn)擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現(xiàn)擁有者的名
稱,則將此功能開啟。
use_localtime=NO ? ? ? ? ? ? ? ? ? ?#顯示目錄清單時是用本地時間還是GMT時間,可以通過mdtm命令來達到一樣的效果
#use_sendfile=YES ? ? ? ? ? ? ? ? ? ? ? ? ? #測試平臺優(yōu)化
################信息類設(shè)置################
ftpd_banner=WelcomeFTP Server. ? ? ? ? #login時顯示歡迎信息.如果設(shè)置了banner_file則此設(shè)置無效
dirmessage_enable=YES ? ? ? ? ? ? ? #允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內(nèi)容 #setproctitle_enable=YES ? ? ? ? ? ? ? ? ? ?#顯示會話狀態(tài)信息,關(guān)!
##############文件定義 ##################
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list#定義不能更改用戶主目錄的文件
userlist_file=/etc/vsftpd/vsftpd.user_list ? ? ?#定義限制/允許用戶登錄的文件
banner_file=/etc/vsftpd/banner ? ? ? ? ? ? ? ? ? ? ?#定義登錄信息文件的位置
banned_email_file=/etc/vsftpd.banned_emails ? ? #禁止使用的匿名用戶登陸時作為密碼的電子郵件地址
xferlog_file=/var/log/vsftpd.log ? ? ? ? ? ? ? ? ? ?#日志文件位置
message_file=.message ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #目錄信息文件
##############目錄定義 #################
user_config_dir=/etc/vsftpd/userconf ? ? ? ? ? ? ? ?#定義用戶配置文件的目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #定義本地用戶登陸的根目錄,注意定義根目錄可以是相對路徑
也可以是絕對路徑.相對路徑是針對用戶家目錄來說的.
local_root=webdisk ? ? ? ? ? ? ? ? ? ? ? ? ? #此項設(shè)置每個用戶登陸后其根目錄為/home/username/webdisk
anon_root=/var/ftp ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #匿名用戶登陸后的根目錄
#############用戶連接選項#################
max_clients=100 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #可接受的最大client數(shù)目
max_per_ip=5 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#每個ip的最大client數(shù)目
connect_from_port_20=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#使用標準的20端口來連接ftp
listen_address=192.168.0.2 ? ? ? ? ? ? ? ? ? ? ? ? ? ?#綁定到某個IP,其它IP不能訪問
#listen_port=2121 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #綁定到某個端口
#ftp_data_port=2020 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #數(shù)據(jù)傳輸端口
pasv_max_port=0 ? ? ? ? ? ? ? ? ? ? ? ? #pasv連接模式時可以使用port 范圍的上界,0 表示任意。默認值為0。
pasv_min_port=0 ? ? ? ? ? ? ? ? ? ? ? #pasv連接模式時可以使用port 范圍的下界,0 表示任意。默認值為0。
##############數(shù)據(jù)傳輸選項#################
anon_max_rate=51200 ? ? ? ? ? ? ? ? ? ? #匿名用戶的傳輸比率(b/s)
local_max_rate=5120000 ? ? ? ? ? ? ? ? ?#本地用戶的傳輸比率(b/s)
配置FTP服務(wù)器實例
通過修改不同的配置文件選項,達到不同的實驗效果
匿名FTP的基本配置
使用匿名FTP,用戶無需輸入用戶名密碼即可登錄FTP服務(wù)器,vsftpd安裝后默認開啟了匿名ftp的功能,用戶無需額外配置即可使用匿名登錄ftp服務(wù)器
這個時候用戶可以匿名方式登錄ftp服務(wù)器,查看并下載匿名賬戶主目錄下的各級目錄和文件,但是不能上傳文件或者創(chuàng)建目錄
[root@localhost ~]# lftp 10.1.252.97lftp 10.1.252.97:~> ls ? ? ? ? ? ? ?
drwxr-xr-x ? ?2 0 ? ? ? ?0 ? ? ? ? ? ?4096 May 11 06:17 pub
lftp 10.1.252.97:/> cd pub/
lftp 10.1.252.97:/pub> put /etc/issue
put: Access failed: 550 Permission denied. (issue) ?//拒絕上傳
lftp 10.1.252.97:/pub> get 1.txt ? ? ? ?//可以下載
lftp 10.1.252.97:/pub>
匿名ftp的其他設(shè)置
出于安全方面的考慮,vsftpd在默認情況下不允許用戶通過匿名FTP上傳文件,創(chuàng)建目錄等更改操作,但是可以修改vsftpd.conf配置文件的選項,可以賦予匿名ftp更多的權(quán)限?
實例1、允許匿名ftp上傳文件?
1、修改vsfpd.conf
anon_upload_enable=YES
2、更改/var/ftp/pub目錄的權(quán)限,為ftp用戶添加寫權(quán)限,并重新加載配置文件
[root@localhost pub]# chmod o+w /var/ftp/pub/[root@localhost pub]# service vsftpd reload
Shutting down vsftpd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Starting vsftpd for vsftpd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
3、測試
lftp 10.1.252.97:/pub> put /etc/issue79 bytes transferred ? ? ? ? ? ?//成功上傳
lftp 10.1.252.97:/pub> ls
-rw-r--r-- ? ?1 0 ? ? ? ?0 ? ? ? ? ? ? ? 0 Jul 25 01:13 1.txt
-rw------- ? ?1 14 ? ? ? 50 ? ? ? ? ? ? 79 Jul 25 01:19 issue
實例2、允許匿名ftp創(chuàng)建目錄?
1、修改vsftpd.conf文件
anon_mkdir_write_enable=YES
2、更改/var/ftp/pub目錄的權(quán)限,為ftp用戶添加寫權(quán)限,并重新加載配置文件
[root@localhost pub]# chmod o+w /var/ftp/pub/[root@localhost pub]# service vsftpd reload
Shutting down vsftpd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
Starting vsftpd for vsftpd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
3、測試
lftp 10.1.252.97:/pub> mkdir zabbixmkdir ok, `zabbix' created
lftp 10.1.252.97:/pub> ls ? ? ? //創(chuàng)建成功
-rw-r--r-- ? ?1 0 ? ? ? ?0 ? ? ? ? ? ? ? 0 Jul 25 01:13 1.txt
-rw------- ? ?1 14 ? ? ? 50 ? ? ? ? ? ? 79 Jul 25 01:19 issue
drwx------ ? ?2 14 ? ? ? 50 ? ? ? ? ? 4096 Jul 25 01:23 zabbix
配置本地用戶登錄
本地用戶登錄就是指使用Linux操作系統(tǒng)中的用戶賬號和密碼登錄ftp服務(wù)器,vsftp安裝后默只支持匿名ftp登錄,用戶如果試圖使用Linux操作系統(tǒng)中的賬號登錄服務(wù)器,將會被vsftpd拒絕?
1、創(chuàng)建本地用戶
[root@localhost pub]# passwd zhanghe
Changing password for user zhanghe.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
2、修改vsftpd.conf文件
local_enable=YES3、修改目錄權(quán)限
[root@localhost html]# chmod o+w /var/www/html/4、登錄賬戶測試
配置虛擬用戶登錄(MySQL認證)
1、安裝MySQL并創(chuàng)建對應(yīng)用戶和表
[root@localhost ~]# yum install mysql-server -y ? #安裝MySQL數(shù)據(jù)庫[root@localhost ~]# service mysqld start ? ? ? ? ? ? ?#啟動數(shù)據(jù)庫
[root@localhost ~]# mysql_secure_installation ? ? #初始化MySQL配置
創(chuàng)建用戶并授權(quán),創(chuàng)建對應(yīng)數(shù)據(jù)庫和表并插入兩行數(shù)據(jù)
[root@localhost ~]# mysql -uroot -pEnter password:
mysql> GRANT ALL ON vsftpd.* TO vsftpd@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec) ? ?#授予用戶權(quán)限
mysql> CREATE DATABASE vsftpd; ? ? ? ? ?#創(chuàng)建數(shù)據(jù)庫
Query OK, 1 row affected (0.00 sec)
mysql> use vsftpd; ? ? ? ? ? ? ? ? ? ? ?#進入指定默認數(shù)據(jù)庫
Database changed
mysql> CREATE TABLE vsftpd.users (uid SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE KEY,name VARCHAR(100) NOT NULL PRIMARY KEY,password CHAR(48) NOT NULL); ? ? ? ? ? ? ? ? ? ?#創(chuàng)建表
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu')),('lucy',PASSWORD('mageedu')); ? ? ? ? #插入3行,用戶為tom,jerry,lucy
Query OK, 3 rows affected (0.00 sec)
Records: 3 ?Duplicates: 0 ?Warnings: 0
mysql> FLUSH PRIVILEGES; ? ? ? ? ? ? ?#刷新權(quán)限
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
2、配置vsftpd基于MySQL表的虛擬用戶
首先要完成基于MySQL表的認證,需要通過pam_mysql模塊實現(xiàn),我們要先安裝pam_mysql
pam_mysql模塊?
CentOS 6:epel?
CentOS 7:編譯安裝
準備要映射成為的系統(tǒng)賬號:
[root@localhost ~]# mkdir -pv /ftproot/{pub,upload}[root@localhost ~]# useradd -d /ftproot vuser
[root@localhost ~]# setfacl -m u:vuser:rwx /ftproot/upload
準備基于mysql認證的pam配置文件:/etc/pam.d/vsftpd.mysql
[root@localhost ~]# vim /etc/pam.d/vsftpd.mysqlauth required pam_mysql.so host=10.1.252.36 user=vsftpd passwd=123456 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so host=10.1.252.36 user=vsftpd passwd=123456 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
配置vsftpd啟用虛擬用戶,并使用指定的pam service:vsftpd.conf
//并確保pam_service_name選項的值如下所示pam_service_name=vsftpd.mysql
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vuser
配置每虛擬用戶擁有不同的權(quán)限:vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_conf為每個用戶單獨提供配置文件
[root@localhost ~]# mkdir /etc/vsftpd/vusers_conf[root@localhost ~]# cd /etc/vsftpd/vusers_conf/
[root@localhost vusers_conf]# touch tom
[root@localhost vusers_conf]# vim tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
測試
[root@localhost ~]# ftp 10.1.252.97Connected to 10.1.252.97 (10.1.252.97).
220 (vsFTPd 2.2.2)
Name (10.1.252.97:root): tom
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 (10,1,252,97,44,23).
150 Here comes the directory listing.
drwxr-xr-x ? ?2 500 ? ? ?500 ? ? ? ? ?4096 Jul 25 01:47 51cto
drwx------ ? ?2 501 ? ? ?501 ? ? ? ? ?4096 Jul 25 02:17 iii
drwxr-xr-x ? ?2 500 ? ? ?500 ? ? ? ? ?4096 Jul 25 01:45 zabbix
226 Directory send OK.
ftp>
控制用戶登錄
1、編輯vsftpd.conf文件
userlist_enable=YESuserlist_file=/etc/vsftpd/ftpuser_list
[root@localhost vsftpd]# vim user_list
或者:vim /etc/vsftpd/ftpuser_list
halt
news
uucp
operator
games
nobody
tom ?//添加禁止登錄的用戶
2、登錄測試
[root@localhost ~]# ftp 10.1.252.97Connected to 10.1.252.97 (10.1.252.97).
220 (vsFTPd 2.2.2)
Name (10.1.252.97:root): tom
530 Permission denied.
Login failed.
ftp> ls
530 Please login with USER and PASS.
Passive mode refused.
ftp>
設(shè)置歡迎信息
用戶登錄歡迎信息
1、修改vsftpd.conf,并重載服務(wù)
ftpd_banner=Welcome to blah mageedu@ftp service.[root@localhost vsftpd]# service vsftpd reload
2、測試
[root@localhost ~]# ftp 10.1.252.97Connected to 10.1.252.97 (10.1.252.97).
220 Welcome to blah mageedu@ftp service.
Name (10.1.252.97:root): tom
登錄信息寫入文件
1、修改vsftpd.conf文件
#ftpd_banner=Welcome to blah mageedu@ftp service.banner_file=/etc/vsftpd/banner.txt
2、添加歡迎信息文件
[root@localhost vsftpd]# cat banner.txt*************************************************
* ? ? ? ? ? ? ? ? ? ? ? *
* ? Welocome to Mageedu FTP server ? ? ?*
* ? ? ? ? ? ? ? ? ? ? ? *
*************************************************
3、測試
[root@localhost ~]# ftp 10.1.252.97Connected to 10.1.252.97 (10.1.252.97).
220-*************************************************
220-* ? ? ? ? ? ? ? ? ? ? ? *
220-* ? Welocome to Mageedu FTP server ? ? ?*
220-* ? ? ? ? ? ? ? ? ? ? ? *
220-*************************************************
220
Name (10.1.252.97:root):
目錄歡迎信息
1、編譯vsftpd.conf文件
dirmessage_enable=YES2、在文件目錄下創(chuàng)建歡迎信息文件并重載服務(wù)
[root@localhost vsftpd]# cat /var/www/html/.message歡迎進入ftp根目錄
[root@localhost html]# service vsftpd reload
3、測試
Name (10.1.252.97:root): tom331 Please specify the password.
Password:
230-歡迎進入ftp根目錄
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
日志管理
[root@localhost ~]# cat /var/log/xferlogMon Jul 25 09:13:36 2016 1 10.1.252.96 0 /pub/1.txt b _ o a lftp@ ftp 0 * c
//提示時間:從10.1.252.96訪問:訪問的文件:b是二進制傳輸方式:o是服務(wù)器到客戶端:a表示匿名
Mon Jul 25 09:19:49 2016 1 10.1.252.96 79 /pub/issue b _ i a lftp@ ftp 0 * c
//提示時間:從10.1.252.96訪問:訪問的文件:b是二進制傳輸方式:i是客戶端到服務(wù)端:a表示匿名
Mon Jul 25 09:46:01 2016 1 10.1.250.64 49451 /var/www/html/Linux_Services_and_Security.txt b _ i r zhanghe ftp 0 * c
提示時間:從10.1.252.64訪問:訪問的文件:b是二進制傳輸方式:i是客戶端到服務(wù)端:r表示真實用戶:服務(wù)名ftp:認證方式0表示無:*無法獲取用戶ID:c表示傳輸已完成
[root@localhost ~]#
總結(jié)
以上是生活随笔為你收集整理的详解“FTP文件传输服务”安装配置实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发网络篇—数据缓存
- 下一篇: 配置DNS服务