Linux下VSFTP配置全攻略
生活随笔
收集整理的這篇文章主要介紹了
Linux下VSFTP配置全攻略
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
vsftp配置指南1.相關(guān)配置文件
/etc目錄下的vsftpd.conf,vsftpd.ftpuser,vsftpd.user_list,/etc/xinetd.d/vsftpd
2.配置vsftp
主要是修改/etc/vsftpd.conf就可以了,相關(guān)參數(shù)如下:
anonymous_enable=YES 是否允許匿名ftp,如否則選擇NO
local_enable=YES 是否允許本地用戶登錄
local_umask=022 默認的umask碼
anon_upload_enable=YES 是否允許匿名ftp用戶訪問
anon_upload_enable=YES 是否允許匿名上傳文件
anon_mkdir_write_enable=YES 是否允許匿名用戶有創(chuàng)建目錄的權(quán)利
dirmessage_enable=YES 是否顯示目錄說明文件,默認是YES但需要收工創(chuàng)建.message文件
xferlog_enable=YES 是否記錄ftp傳輸過程
connect_from_port_20=YES 是否確信端口傳輸來自20(ftp-data)
chown_upload=YES
chown_username=username 是否改變上傳文件的屬主,如果是需要輸入一個系統(tǒng)用戶名,你可以把上傳的文件都改成root屬主
xferlog_file=/var/log/vsftpd.log ftp傳輸日志的路徑和名字默認是/var/log/vsftpd.log
xferlog_std_format=YES 是否使用標(biāo)準(zhǔn)的ftp xferlog模式
idle_session_timeout=600 設(shè)置默認的斷開不活躍session的時間
data_connection_timeout=120 設(shè)置數(shù)據(jù)傳輸超時時間
nopriv_user=ftpsecure 運行vsftpd需要的非特權(quán)系統(tǒng)用戶默認是nobody
async_abor_enable=YES 是否允許運行特殊的ftp命令async ABOR.這里我翻譯的不爽,原文如下:
When enabled, a special FTP command known as "async ABOR" will be enabled. Only ill advised FTP clients will use this feature.Addtionally, this feature is awkward to handle, so it is dis-abled by default. Unfortunately, some FTP clients will hang when cancelling a transfer unless this feature is available, so you may wish to enable it.
ascii_upload_enable=YES
ascii_download_enable=YES 是否使用ascii碼方式上傳和下載文件
ftpd_banner=Welcome to chenlf FTP service. 定制歡迎信息
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails 是否允許禁止匿名用戶使用某些郵件地址,如果是輸入禁止的郵件地址的路徑和文件名
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list 是否將系統(tǒng)用戶限止在自己的home目錄下,如果選擇了yes那么chroot_list_file=/etc/vsftpd.chroot_list中 列出的是不chroot的用戶的列表
max_clients=Number 如果以standalone模式起動,那么只有$Number個用戶可以連接,其他的用戶將得到錯誤信息,默認是0不限止
message_file 設(shè)置訪問一個目錄時獲得的目錄信息文件的文件名,默認是.message
沒發(fā)現(xiàn)有限止帶寬的地方,如果誰知道請告訴我,詳細的幫助說明請參考man vsftpd.conf
3 配置實例
以下是我的配置文件.允許匿名FTP,允許上傳,chroot用戶目錄,上傳文件屬主改為root
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=root
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
pam_service_name=vsftpd
chroot_local_user=YES
4 起動服務(wù)
vsftpd和wu-ftpd不能同時起動,所以修改/etc/xinetd.d/wu-ftpd將disable設(shè)置為yes,然后修改/etc/vsftpd將disable設(shè)置為NO
執(zhí)行/etc/initd.d/xinetd restart
就可以了.好了,現(xiàn)在我們就建了一個所謂的非常安全的ftp服務(wù)器了,大家試試吧
VSFTPD的菜鳥篇
1. 匿名服務(wù)器的連接(獨立的服務(wù)器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內(nèi)容)
Local_umask=022 (FTP上本地的文件權(quán)限,默認是077)
Connect_form_port_20=yes (啟用FTP數(shù)據(jù)端口的數(shù)據(jù)連接)*
Xferlog_enable=yes (激活上傳和下傳的日志)
Xferlog_std_format=yes (使用標(biāo)準(zhǔn)的日志格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD服務(wù)器)*
功能:只能連接FTP服務(wù)器,不能上傳和下傳
注:其中所有和日志歡迎信息相關(guān)連的都是可選項,打了星號的無論什么帳戶都要添加,是屬于FTP的基本選項
2. 開啟匿名FTP服務(wù)器上傳權(quán)限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (開放上傳權(quán)限)
Anon_mkdir_write_enable=yes (可創(chuàng)建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權(quán)限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權(quán)限)
3. 開啟匿名服務(wù)器下傳的權(quán)限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啟它的讀寫執(zhí)行的權(quán)限
(R)讀-----下傳 (W)寫----上傳 (X)執(zhí)行----如果不開FTP的目錄都進不去
4.普通用戶FTP服務(wù)器的連接(獨立服務(wù)器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸后無權(quán)刪除和修改文件)
功能:可以用本地帳戶登陸vsftpd服務(wù)器,有下載上傳的權(quán)限
注:在禁止匿名登陸的信息后匿名服務(wù)器照樣可以登陸但不可以上傳下傳
5. 用戶登陸限制進其它的目錄,只能進它的主目錄
設(shè)置所有的本地用戶都執(zhí)行chroot
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
設(shè)置指定用戶執(zhí)行chroot
Chroot_list_enable=yes (文件中的名單可以調(diào)用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
注意:vsftpd.chroot_list 是沒有創(chuàng)建的需要自己添加,要想控制帳號就直接在文件中加帳號即可
6. 限制本地用戶訪問FTP
Userlist_enable=yes (用userlistlai 來限制用戶訪問)
Userlist_deny=no (名單中的人不允許訪問)
Userlist_file=/指定文件存放的路徑/ (文件放置的路徑)
注:開啟userlist_enable=yes匿名帳號不能登陸
7. 安全選項
Idle_session_timeout=600(秒) (用戶會話空閑后10分鐘)
Data_connection_timeout=120(秒) (將數(shù)據(jù)連接空閑2分鐘斷)
Accept_timeout=60(秒) (將客戶端空閑1分鐘后斷)
Connect_timeout=60(秒) (中斷1分鐘后又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數(shù)據(jù)連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數(shù))
Max_per_ip=4 (每IP的最大連接數(shù))
Listen_port=5555 (從5555端口進行數(shù)據(jù)連接)
8. 查看誰登陸了FTP,并殺死它的進程
ps –xf |grep ftp
kill 進程號
VSFTPD的高手篇
1. 配置本地組訪問的FTP
首先創(chuàng)建用戶組 test和FTP的主目錄
groupadd test
mkdir /tmp/test
然后創(chuàng)建用戶
useradd -G test –d /tmp/test –M usr1
注:G:用戶所在的組 d:表示創(chuàng)建用戶的自己目錄的位置給予指定
M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄
useradd –G test –d /tmp/test –M usr2
接著改變文件夾的屬主和權(quán)限
chown usr1.test /tmp/test ----這表示把/tmp/test的屬主定為usr1
chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么權(quán)限都沒有
這個實驗的目的就是usr1有上傳、刪除和下載的權(quán)限
而usr2只有下載的權(quán)限沒有上傳和刪除的權(quán)限
當(dāng)然啦大家別忘了我們的主配置文件vsftpd.conf
要確定local_enable=yes、write_enable=yes、chroot_local_usr=yes這三個選項是有的哦!
2. 配置獨立FTP的服務(wù)器的非端口標(biāo)準(zhǔn)模式進行數(shù)據(jù)連接
這個非常容易:在VSFTPD。CONF中添加
Listen_port=33333
就可以了啦!
好了重頭戲來了,這也是我為什么叫高手篇的緣故!^_^(大家不要扔雞蛋哦!)
3. 配置單獨的虛擬FTP,使用虛擬FTP用戶,并使建立的四個帳戶中有不同的權(quán)限
(兩個有讀目錄的權(quán)限,一個有瀏覽、上傳、下載的權(quán)限,一個有瀏覽、下載、刪除和改文件名的權(quán)限)
A:配置網(wǎng)卡
第一塊網(wǎng)卡地址是10.2.3.4 掩碼是255.255.0.0
ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up
B:寫入/etc/sysconfig中(為了重起后IP地址不會丟失)
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
vi ifcfg-eth0:1在其中修改內(nèi)容如下
DEVICE=eth0:1
BROADCAST=211.131.4.255
HWADDR=該網(wǎng)卡的MAC地址
IPADDR=211.131.4.253
NETMASK=255.255.255.0
NETWORK=211.131.4.0
ONBOOT=yes
TYPE=Ethernet
wq推出
C:進入vsftpd.conf所在的文件夾
cp vsftpd.conf vsftpd2.conf
修改vsftpd.conf添加以下信息
Listen_address=10.2.3.4
修改vsftpd2.conf添加以下信息
Listen_address=211.131.4.253
Ftpd_banner=this is a virtual ftp test
到此虛擬的FTP服務(wù)器建立好了
D:建立logins.txt
vi /tmp/logins.txt
添加入下信息:
longlei------------用戶名
longlei------------密碼
zhangweibo
zhangweibo
jinhui
jinhui
lxp
lxp
格式要按照我的來哦,一個用戶名,一個密碼啦
F:建立訪問者的口令庫文件,然后修改其權(quán)限
db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db
G:進如/etc/pam.d/中創(chuàng)建 ftp.vu
在此文件中添加如下信息
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
H:在/var/ftp/創(chuàng)建目錄并改變其屬性和它的屬主
useradd -d /var/ftp/test qiang
chmod 700 /var/ftp/test
在目錄中添加test_file測試文件
I:進入vsftpd2.conf修改其中的信息(我加的是)
Listen_yes
Anonymous_enable=no
Local_enable=yes
Write_enable=no
Anon_upload_enable=no
Anon_mkdir_write_enable=no
Anon_other_write_enable=no
Chroot_local_user=yes
Guest_enable=yes----------起用虛擬用戶
Guest_username=qiang------將虛擬用戶映射為本地用戶
Listen_port=5555
Max_client=10
Max_per_ip=1
Ftpd_banner=this is a virtual server and users
Pam_service_name=ftp.vu
注:在主配置文件中給的權(quán)限越低,在后面分用戶管理的時候?qū)碜o的權(quán)限劃分的空間就越大,因為主配置文件最高的限制服務(wù)先讀主配置文件,然后再讀用戶的配置文件
重起服務(wù)
到此虛擬USER就建好了
J:在VSFTPD。CONF所在的目錄中創(chuàng)建virtaul文件目錄
并在文件目錄中創(chuàng)建以你用戶名命名的配置文件
Longlei zhangweibo jinhui lxp
在longlei中添加:
Anon_world_readable_only=no
在lxp中添加
Anon_world_readable_only=no
這樣此兩個用戶就有了瀏覽目錄的權(quán)限了
在jinhui中添加
Anon_world_readable_only=no
Write_enable=yes
Anon_upload_enable=yes
此用戶就有了上傳、下載和瀏覽的權(quán)限
在zhangweibo中添加
Anon_world_readable_only=no
Write_enable=yes
Anon_upload_enable=yes
Anon_other_write_enable=yes
此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的權(quán)限
K:修改vsftpd2.conf
加入user_config_dir=/vsftpd.conf所在的目錄/virtual
重起服務(wù)器就搞定了
好了大家別走開,現(xiàn)在隆重推出VSFTPD。CONF中的我所知道的所有配置信息
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內(nèi)容)
Local_umask=022 (FTP上本地的文件權(quán)限,默認是077)
Connect_form_port_20=yes (啟用FTP數(shù)據(jù)端口的數(shù)據(jù)連接)*
Xferlog_enable=yes (激活上傳和下傳的日志)
Xferlog_std_format=yes (使用標(biāo)準(zhǔn)的日志格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD服務(wù)器)*
Anon_upload_enable=yes (開放上傳權(quán)限)
Anon_mkdir_write_enable=yes (可創(chuàng)建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權(quán)限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權(quán)限)
Anon_world_readable_only=no (放開匿名用戶瀏覽權(quán)限)
Ascii_upload_enable=yes (啟用上傳的ASCII傳輸方式)
Ascii_download_enable=yes (啟用下載的ASCII傳輸方式)
Banner_file=/var/vsftpd_banner_file (用戶連接后歡迎信息使用的是此文件中的相關(guān)信息)
Idle_session_timeout=600(秒) (用戶會話空閑后10分鐘)
Data_connection_timeout=120(秒) (將數(shù)據(jù)連接空閑2分鐘斷)
Accept_timeout=60(秒) (將客戶端空閑1分鐘后斷)
Connect_timeout=60(秒) (中斷1分鐘后又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數(shù)據(jù)連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數(shù))
Max_per_ip=4 (每IP的最大連接數(shù))
Listen_port=5555 (從5555端口進行數(shù)據(jù)連接)
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸后無權(quán)刪除和修改文件)
這是一組
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
Chroot_list_enable=yes (文件中的名單可以調(diào)用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
(前提是chroot_local_user=no)
這又是一組
Userlist_enable=yes (在指定的文件中的用戶不可以訪問)
Userlist_deny=yes
Userlist_file=/指定的路徑/vsftpd.user_list
又開始單的了
Banner_fail=/路徑/文件名 (連接失敗時顯示文件中的內(nèi)容)
Ls_recurse_enable=no
Async_abor_enable=yes
One_process_model=yes
Listen_address=10.2.2.2 (將虛擬服務(wù)綁定到某端口)
Guest_enable=yes (虛擬用戶可以登陸)
Guest_username=所設(shè)的用戶名 (將虛擬用戶映射為本地用戶)
User_config_dir=/任意指定的路徑/為用戶策略自己所建的文件夾
(指定不同虛擬用戶配置文件的路徑)
又是一組
Chown_uploads=yes (改變上傳文件的所有者為root)
Chown_username=root
又是一組
Deny_email_enable=yes (是否允許禁止匿名用戶使用某些郵件地址)
Banned_email_file=//任意指定的路徑/xx/
又是單的
Pasv_enable=yes ( 服務(wù)器端用被動模式)
User_config_dir=/任意指定的路徑//任意文件目錄 (指定虛擬用戶存放配置文件的路徑)
VSFTP安全與效能兼?zhèn)涞膄tp服務(wù)器
VSFTP 概述?
FTP,file transfer protocol,這是檔案傳輸?shù)耐ㄓ崊f(xié)議,也是一般最常用來傳送檔案的方式。讀者在使用 RedHat9 的時候,可能會感受到ftp server 有一些改變:第一,就是ftp server 只剩下vsftp,原有的wuftp 等都沒放入﹔第二,就是vsftp 從XINETD 中獨立出來,并將設(shè)定檔從/etc/vsftpd.conf 之中移到/etc/vsftpd/vsftpd.conf。 為什么做這樣的改變?可以想見的是vsftp 已有獨立運作的能力,不需要XINETD 來做更進一步的管控,并且類似sendmail、httpd、ssh、samba 等,將設(shè)定文件的放入/etc 下獨立的目錄。?
FTP 分為兩類,一種為PORT FTP,也就是一般的FTP﹔另一類是PASVFTP,分述如下:
PORT FTP 這是一般形式的FTP,首先會建立控制頻道,默認值是port 21,也就是跟 port 21 建立聯(lián)機,并透過此聯(lián)機下達指令。第二,由FTP server 端會建立數(shù)據(jù) 傳輸頻道,默認值為20,也就是跟port 20 建立聯(lián)機,并透過port 20 作數(shù)據(jù)的 傳輸。?
PASV FTP 跟PORT FTP 類似,首先會建立控制頻道,默認值是port 21,也就是跟 port 21 建立聯(lián)機,并透過此聯(lián)機下達指令。第二,會由client 端做出數(shù)據(jù)傳輸 的請求,包括數(shù)據(jù)傳輸port 的數(shù)字。?
這 兩者的差異為何?PORT FTP 當(dāng)中的數(shù)據(jù)傳輸port 是由FTP server 指定, 而PASV FTP 的數(shù)據(jù)傳輸port 是由FTP client 決定。通常我們使用PASV FTP, 是在有防火墻的環(huán)境之下,透過client 與server 的溝通,決定數(shù)據(jù)傳輸?shù)膒ort。?
范例?
直接啟動VSFTP 服務(wù)?
這個范例是套用 RedHat 的預(yù)設(shè)范例,直接啟動vsftp。?
[root@relay vsftpd]# /sbin/service vsftpd start?
Starting vsftpd for vsftpd: OK ]?
更換port 提供服務(wù)
將預(yù)設(shè)的port 21 更換為2121?
為了安全,或是以port 來區(qū)隔不同的ftp 服務(wù),我們可能會將ftp port 改為 21 之外的port,那么,可參考以下步驟。?
Step1. 修改/etc/vsftpd/vsftpd.conf?
新增底下一行?
listen_port=2121?
Step2. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
特定使用者peter、john 不得變更目錄?
使用者的預(yù)設(shè)目錄為/home/username,若是我們不希望使用者在ftp 時能夠 切換到上一層目錄/home,則可參考以下步驟。?
Step1. 修改/etc/vsftpd/vsftpd.conf?
將底下三行?
#chroot_list_enable=YES?
# (default follows)?
#chroot_list_file=/etc/vsftpd.chroot_list?
改為?
chroot_list_enable=YES?
# (default follows)?
chroot_list_file=/etc/vsftpd/chroot_list?
Step2. 新增一個檔案: /etc/vsftpd/chroot_list?
內(nèi)容增加兩行:?
peter?
john?
Step3. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
若是peter 欲切換到根目錄以外的目錄,則會出現(xiàn)以下警告:?
ftp> cd /home?
550 Failed to change directory.?
取消anonymous 登入?
若是讀者的主機不希望使用者匿名登入,則可參考以下步驟。?
Step1. 修改/etc/vsftpd/vsftpd.conf 將?
anonymous_enable=YES 改為?
anonymous_enable=NO?
Step2. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
安排歡迎話語?
若是我們希望使用者在登入時,能夠看到歡迎話語,可能包括對該主機的 說明,或是目錄的介紹,可參考以下步驟。?
首先確定在/etc/vsftpd/vsftpd.conf 當(dāng)中是否有底下這一行?
dirmessage_enable=YES?
RedHat9 的默認值是有上面這行的。?
接著,在各目錄之中,新增名為.message 的檔案,再這邊假設(shè)有一個使用 者test1,且此使用者的根目錄下有個目錄名為abc,那首先我們在/home/test1 之下新增.message,內(nèi)容如下:?
Hello~ Welcome to the home directory?
This is for test only...?
接著,在/home/test1/abc 的目錄下新增.message,內(nèi)容如下:?
Welcome to abc’s directory?
This is subdir...?
那么,當(dāng)使用者test1 登入時,會看到以下訊息:?
230- Hello~ Welcome to the home directory?
230-?
230- This is for test only...?
230-?
若是切換到abc 的目錄,則會出現(xiàn)以下訊息:?
250- Welcome to abc’s directory?
250-?
250- This is subdir ...?
對于每一個聯(lián)機,以獨立的process 來運作?
一般啟動vsftp 時,我們只會看到一個名為vsftpd 的process 在運作,但若 是讀者希望每一個聯(lián)機,都能以獨立的process 來呈現(xiàn),則可執(zhí)行以下步驟。?
Step1. 修改/etc/vsftpd/vsftpd.conf?
新增底下一行?
setproctitle_enable=YES?
Step2. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
使用ps -ef 的指令,可以看告不同使用者聯(lián)機的情形,如下圖所示:?
[root @home vsftpd]# ps -ef|grep ftp?
root 2090 1 0 16:41 pts/0 00:00:00 vsftpd: LISTENER?
nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244:?
connected?
test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1:?
IDLE?
nobody 2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244:?
connected?
test2 2126 2124 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2:?
IDLE?
root 2129 1343 0 17:20 pts/0 00:00:00 grep ftp?
[root @home vsftpd]#?
限制傳輸檔案的速度
本機的使用者最高速度為200KBytes/s,匿名登入者所能使用的最高速度為50KBytes/s?
Step1. 修改/etc/vsftpd/vsftpd.conf?
新增底下兩行?
anon_max_rate=50000?
local_max_rate=200000?
Step2. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
在 這邊速度的單位為Bytes/s,其中anon_max_rate 所限制的是匿名登入的 使用者,而local_max_rate 所限制的是本機的使用者。VSFTPD 對于速度的限制,范圍大概在80%到120%之間,也就是我們限制最高速度為100KBytes/s, 但實際的速度可能在80KBytes/s 到120KBytes/s 之間,當(dāng)然,若是頻寬不足時,數(shù)值會低于此限制。?
針對不同的使用者限制不同的速度
假設(shè)test1 所能使用的最高速度為250KBytes/s,test2 所能使用的最高速度為500KBytes/s。?
Step1. 修改/etc/vsftpd/vsftpd.conf?
新增底下一行?
user_config_dir=/etc/vsftpd/userconf?
Step2. 新增一個目錄:/etc/vsftpd/userconf?
mkdir /etc/vsftpd/userconf?
Step3. 在/etc/vsftpd/userconf 之下新增一個名為test1 的檔案?
內(nèi)容增加一行:?
local_max_rate=250000?
Step4. 在/etc/vsftpd/userconf 之下新增一個名為test2 的檔案?
內(nèi)容增加一行:?
local_max_rate=500000?
Step5. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
建置一個防火墻下的ftp server
使用PORT FTP mode,預(yù)設(shè)的ftp? port:21 以及ftp data port:20 啟動VSFTPD 之后執(zhí)行以下兩行指令,只允許port 21 以及port 20 開放,其它關(guān)閉。?
iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT?
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset?
建置一個防火墻下的ftp server
使用PORT FTP mode:ftp port:2121 以及ftp data port:2020?
Step1. 執(zhí)行以下兩行指令,只允許port 2121 以及port 2020 開放,其它關(guān)閉。?
iptables -A INPUT -p tcp -m multiport --dport 2121,2020 -j ACCEPT?
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset?
Step2. 修改/etc/vsftpd/vsftpd.conf?
新增底下兩行?
listen_port=2121?
ftp_data_port=2020?
Step3. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
在這邊要注意,8、9 兩個例子中,ftp client(如cuteftp)的聯(lián)機方式不能? 夠選擇passive mode,否則無法建立數(shù)據(jù)的聯(lián)機。也就是讀者可以連上ftp? server,但是執(zhí)行l(wèi)s、get 等等的指令時,便無法運作。?
建置一個防火墻下的ftp server
使用PASS FTP mode:ftp port:2121 以及ftp data port 從9981 到9986。?
Step1. 執(zhí)行以下兩行指令,只允許port 2121 以及port 9981-9990 開放,其它關(guān) 閉。?
iptables -A INPUT -p tcp -m multiport --dport?
2121,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j ACCEPT?
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset?
Step2. 修改/etc/vsftpd/vsftpd.conf?
新增底下四行?
listen_port=2121?
pasv_enable=YES?
pasv_min_port=9981?
pasv_max_port=9986?
Step3. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
在這邊要注意,在10 這個例子中,ftp client(如cuteftp)的聯(lián)機方式必須 選擇passive mode,否則無法建立數(shù)據(jù)的聯(lián)機。也就是讀者可以連上ftp? server,但是執(zhí)行l(wèi)s,get 等等的指令時,便無法運作。?
將vsftpd 與TCP_wrapper 結(jié)合?
若是讀者希望直接在/etc/hosts.allow 之中定義允許或是拒絕的來源地址, 可執(zhí)行以下步驟。這是簡易的防火墻設(shè)定。?
Step1. 確定/etc/vsftpd/vsftpd.conf 之中tcp_wrappers 的設(shè)定為YES,如下圖所 示:?
tcp_wrappers=YES?
這是 RedHat9 的默認值,基本上不需修改。?
Step2. 重新啟動vsftpd?
[root @home vsftpd]# /sbin/service vsftpd restart?
Shutting down vsftpd: OK ]?
Starting vsftpd for vsftpd: OK ]?
Step3. 設(shè)定/etc/hosts.allow,譬如提供111.22.33.4 以及10.1.1.1 到10.1.1.254 連?
線,則可做下圖之設(shè)定:?
vsftpd : 111.22.33.4 10.1.1. : allow?
ALL : ALL : DENY?
將vsftpd 并入XINETD?
若是讀者希望將vsftpd 并入XINETD 之中,也就是7.x 版的預(yù)設(shè)設(shè)定,那 么讀者可以執(zhí)行以下步驟。?
Step1. 修改/etc/vsftpd/vsftpd.conf?
將?
listen=YES?
改為?
listen=NO?
Step2. 新增一個檔案: /etc/xinetd.d/vsftpd?
內(nèi)容如下:?
service vsftpd?
{?
disable = no?
socket_type = stream?
wait = no?
user = root?
server = /usr/sbin/vsftpd?
port = 21?
log_on_success += PID HOST DURATION?
log_on_failure += HOST?
}?
Step3. 重新啟動xinetd?
[root @home vsftpd]# /sbin/service xinetd restart?
Stopping xinetd: OK ]?
Starting xinetd: OK ]?
設(shè)定檔說明?
在范例中,有些省略的設(shè)定可以在這邊找到,譬如聯(lián)機的總數(shù)、同一個位 址的聯(lián)機數(shù)、顯示檔案擁有者的名稱等等,希望讀者細讀后,可以做出最適合自己的設(shè)定。?
vsftpd.conf 的內(nèi)容非常單純,每一行即為一項設(shè)定。若是空白行或是開頭為#的一行, 將會被忽略。內(nèi)容的格式只有一種,如下所示?
option=value? 要注意的是,等號兩邊不能加空白,不然是不正確的設(shè)定。?
===ascii 設(shè)定=====================?
ascii_download_enable?
管控是否可用ASCII 模式下載。默認值為NO。?
ascii_upload_enable?
管控是否可用ASCII 模式上傳。默認值為NO。?
===個別使用者設(shè)定===================?
chroot_list_enable?
如果啟動這項功能,則所有的本機使用者登入均可進到根目錄之外的數(shù)據(jù)夾,除了列 在/etc/vsftpd.chroot_list 之中的使用者之外。默認值為NO。?
userlist_enable?
用法:YES/NO?
若是啟動此功能,則會讀取/etc/vsftpd.user_list 當(dāng)中的使用者名稱。此項功能可以在詢 問密碼前就出現(xiàn)失敗訊息,而不需要檢驗密碼的程序。默認值為關(guān)閉。?
userlist_deny?
用法:YES/NO?
這 個選項只有在userlist_enable 啟動時才會被檢驗。如果將這個選項設(shè)為YES,則在 /etc/vsftpd.user_list 中的使用者將無法登入﹔ 若設(shè)為NO , 則只有在 /etc/vsftpd.user_list 中的使用者才能登入。而且此項功能可以在詢問密碼前就出現(xiàn)錯誤訊息,而不需要檢驗密碼的程序。?
user_config_dir?
定 義個別使用者設(shè)定文件所在的目錄,例如定義user_config_dir=/etc/vsftpd/userconf, 且主機上有使用者test1,test2,那我們可以在user_config_dir 的目錄新增文件名為 test1 以及test2。若是test1 登入,則會讀取user_config_dir 下的test1 這個檔案內(nèi)的設(shè)定。默認值為無。?
===歡迎語設(shè)定=====================?
dirmessage_enable?
如果啟動這個選項,使用者第一次進入一個目錄時,會檢查該目錄下是否有.message 這個檔案,若是有,則會出現(xiàn)此檔案的內(nèi)容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。默認值為開啟。?
banner_file?
當(dāng)使用者登入時,會顯示此設(shè)定所在的檔案內(nèi)容,通常為歡迎話語或是說明。默認值為無。?
ftpd_banner?
這邊可定義歡迎話語的字符串,相較于banner_file 是檔案的形式,而ftpd_banner 是字串的格式。預(yù)設(shè)為無。?
===特殊安全設(shè)定====================?
chroot_local_user?
如果設(shè)定為YES,那么所有的本機的使用者都可以切換到根目錄以外的數(shù)據(jù)夾。預(yù)設(shè)值為NO。?
hide_ids?
如果啟動這項功能,所有檔案的擁有者與群組都為ftp,也就是使用者登入使用ls -al 之類的指令,所看到的檔案擁有者跟群組均為ftp。默認值為關(guān)閉。?
ls_recurse_enable?
若是啟動此功能,則允許登入者使用ls -R 這個指令。默認值為NO。?
write_enable?
用法:YES/NO?
這個選項可以控制FTP 的指令是否允許更改file system,譬如STOR、DELE、 RNFR、RNTO、MKD、RMD、APPE 以及SITE。預(yù)設(shè)是關(guān)閉。?
setproctitle_enable?
用法:YES/NO?
啟動這項功能,vsftpd 會將所有聯(lián)機的狀況已不同的process 呈現(xiàn)出來,換句話說,使用ps -ef 這類的指令就可以看到聯(lián)機的狀態(tài)。默認值為關(guān)閉。?
tcp_wrappers?
用法:YES/NO?
如果啟動,則會將vsftpd 與tcp wrapper 結(jié)合,也就是可以在/etc/hosts.allow 與 /etc/hosts.deny 中定義可聯(lián)機或是拒絕的來源地址。?
pam_service_name?
這邊定義PAM 所使用的名稱,預(yù)設(shè)為vsftpd。?
secure_chroot_dir?
這個選項必須指定一個空的數(shù)據(jù)夾且任何登入者都不能有寫入的權(quán)限,當(dāng)vsftpd 不需要file system 的權(quán)限時,就會將使用者限制在此數(shù)據(jù)夾中。默認值為/usr/share/empty?
===紀(jì)錄文件設(shè)定=====================?
xferlog_enable?
用法:YES/NO?
如果啟動,上傳與下載的信息將被完整紀(jì)錄在底下xferlog_file 所定義的檔案中。預(yù)設(shè)為開啟。?
xferlog_file?
這個選項可設(shè)定紀(jì)錄文件所在的位置,默認值為/var/log/vsftpd.log。?
xferlog_std_format?
如果啟動,則紀(jì)錄文件將會寫為xferlog 的標(biāo)準(zhǔn)格式,如同wu-ftpd 一般。默認值為關(guān)閉。?
===逾時設(shè)定======================?
accept_timeout?
接受建立聯(lián)機的逾時設(shè)定,單位為秒。默認值為60。?
connect_timeout?
響應(yīng)PORT 方式的數(shù)據(jù)聯(lián)機的逾時設(shè)定,單位為秒。默認值為60。?
data_connection_timeout?
建立數(shù)據(jù)聯(lián)機的逾時設(shè)定。默認值為300 秒。?
idle_session_timeout?
發(fā)呆的逾時設(shè)定,若是超出這時間沒有數(shù)據(jù)的傳送或是指令的輸入,則會強迫斷線, 單位為秒。默認值為300。?
===速率限制======================?
anon_max_rate?
匿名登入所能使用的最大傳輸速度,單位為每秒多少bytes,0 表示不限速度。默認值為0。?
local_max_rate?
本機使用者所能使用的最大傳輸速度,單位為每秒多少bytes,0 表示不限速度。預(yù)設(shè)值為0。?
===新增檔案權(quán)限設(shè)定==================?
anon_umask?
匿名登入者新增檔案時的umask 數(shù)值。默認值為077。?
file_open_mode?
上傳檔案的權(quán)限,與chmod 所使用的數(shù)值相同。默認值為0666。?
local_umask?
本機登入者新增檔案時的umask 數(shù)值。默認值為077。?
===port 設(shè)定======================?
connect_from_port_20?
用法:YES/NO?
若設(shè)為YES,則強迫ftp-data 的數(shù)據(jù)傳送使用port 20。默認值為YES。?
ftp_data_port?
設(shè)定ftp 數(shù)據(jù)聯(lián)機所使用的port。默認值為20。?
listen_port?
FTP server 所使用的port。默認值為21。?
pasv_max_port?
建立資料聯(lián)機所可以使用port 范圍的上界,0 表示任意。默認值為0。?
pasv_min_port?
建立資料聯(lián)機所可以使用port 范圍的下界,0 表示任意。默認值為0。?
===其它========================?
anon_root?
使用匿名登入時,所登入的目錄。默認值為無。?
local_enable?
用法:YES/NO?
啟動此功能則允許本機使用者登入。默認值為YES。?
local_root?
本機使用者登入時,將被更換到定義的目錄下。默認值為無。?
text_userdb_names?
用法:YES/NO?
當(dāng)使用者登入后使用ls -al 之類的指令查詢該檔案的管理權(quán)時,預(yù)設(shè)會出現(xiàn)擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現(xiàn)擁有者的名稱,則將此功能開啟。 默認值為NO。?
pasv_enable?
若是設(shè)為NO,則不允許使用PASV 的模式建立數(shù)據(jù)的聯(lián)機。默認值為開啟。?
===更換檔案所有權(quán)===================?
chown_uploads?
用法:YES/NO?
若是啟動,所有匿名上傳數(shù)據(jù)的擁有者將被更換為chown_username 當(dāng)中所設(shè)定的使用者。這樣的選項對于安全及管理,是很有用的。默認值為NO。?
chown_username?
這里可以定義當(dāng)匿名登入者上傳檔案時,該檔案的擁有者將被置換的使用者名稱。預(yù)設(shè)值為root。?
===guest 設(shè)定=====================?
guest_enable?
用法:YES/NO?
若是啟動這項功能,所有的非匿名登入者都視為guest。默認值為關(guān)閉。?
guest_username?
這里將定義guest 的使用者名稱。默認值為ftp。?
===anonymous 設(shè)定==================?
anonymous_enable?
用法:YES/NO?
管控使否允許匿名登入,YES 為允許匿名登入,NO 為不允許。默認值為YES。?
no_anon_password?
若是啟動這項功能,則使用匿名登入時,不會詢問密碼。默認值為NO。?
anon_mkdir_write_enable?
用法:YES/NO?
如果設(shè)為YES,匿名登入者會被允許新增目錄,當(dāng)然,匿名使用者必須要有對上層目錄的寫入權(quán)。默認值為NO。?
anon_other_write_enable?
用法:YES/NO?
如果設(shè)為YES,匿名登入者會被允許更多于上傳與建立目錄之外的權(quán)限,譬如刪除或是更名。默認值為NO。?
anon_upload_enable?
用法:YES/NO?
如果設(shè)為YES,匿名登入者會被允許上傳目錄的權(quán)限,當(dāng)然,匿名使用者必須要有對上層目錄的寫入權(quán)。默認值為NO。?
anon_world_readable_only?
用法:YES/NO?
如果設(shè)為YES,匿名登入者會被允許下載可閱讀的檔案。默認值為YES。?
ftp_username?
定義匿名登入的使用者名稱。默認值為ftp。?
deny_email_enable?
若是啟動這項功能,則必須提供一個檔案/etc/vsftpd.banner_emails,內(nèi)容為email?
address
若是使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內(nèi),則不允許聯(lián)機。默認值為NO。?
===Standalone 選項==================?
listen?
用法:YES/NO?
若是啟動,則vsftpd 將會以獨立運作的方式執(zhí)行,若是vsftpd 獨立執(zhí)行,如 RedHat9 的默認值,則必須啟動﹔若是vsftpd 包含在xinetd 之中,則必須關(guān)閉此功能,如RedHat8。在RedHat9 的默認值為YES。?
listen_address?
若 是vsftpd 使用standalone 的模式,可使用這個參數(shù)定義使用哪個IP address 提供這 項服務(wù),若是主機上只有定義一個IP address,則此選項不需使用,若是有多個IP? address,可定義在哪個IP address 上提供ftp 服務(wù)。若是不設(shè)定,則所有的IP address 均會提供此服務(wù)。默認值為無。?
max_clients?
若是vsftpd 使用standalone 的模式,可使用這個參數(shù)定義最大的總聯(lián)機數(shù)。超過這個數(shù)目將會拒絕聯(lián)機,0 表示不限。默認值為0。?
max_per_ip?
若是vsftpd 使用standalone 的模式,可使用這個參數(shù)定義每個ip address 所可以聯(lián)機的數(shù)目。超過這個數(shù)目將會拒絕聯(lián)機,0 表示不限。默認值為0。?
FTP 數(shù)字代碼的意義?
110 重新啟動標(biāo)記應(yīng)答。?
120 服務(wù)在多久時間內(nèi)ready。?
125 數(shù)據(jù)鏈路埠開啟,準(zhǔn)備傳送。?
150 文件狀態(tài)正常,開啟數(shù)據(jù)連接端口。?
200 命令執(zhí)行成功。?
202 命令執(zhí)行失敗。?
211 系統(tǒng)狀態(tài)或是系統(tǒng)求助響應(yīng)。?
212 目錄的狀態(tài)。?
213 文件的狀態(tài)。?
214 求助的訊息。?
215 名稱系統(tǒng)類型。?
220 新的聯(lián)機服務(wù)ready。?
221 服務(wù)的控制連接埠關(guān)閉,可以注銷。?
225 數(shù)據(jù)連結(jié)開啟,但無傳輸動作。?
226 關(guān)閉數(shù)據(jù)連接端口,請求的文件操作成功。?
227 進入passive mode。?
230 使用者登入。?
250 請求的文件操作完成。?
257 顯示目前的路徑名稱。?
331 用戶名稱正確,需要密碼。?
332 登入時需要賬號信息。?
350 請求的操作需要進一部的命令。?
421 無法提供服務(wù),關(guān)閉控制連結(jié)。?
425 無法開啟數(shù)據(jù)鏈路。?
426 關(guān)閉聯(lián)機,終止傳輸。?
450 請求的操作未執(zhí)行。?
451 命令終止:有本地的錯誤。?
452 未執(zhí)行命令:磁盤空間不足。?
500 格式錯誤,無法識別命令。?
501 參數(shù)語法錯誤。?
502 命令執(zhí)行失敗。?
503 命令順序錯誤。?
504 命令所接的參數(shù)不正確。?
530 未登入。?
532 儲存文件需要賬戶登入。?
550 未執(zhí)行請求的操作。?
551 請求的命令終止,類型未知。?
552 請求的文件終止,儲存位溢出。?
553 未執(zhí)行請求的的命令,名稱不正確。
?VSFTPd架設(shè)及要點補充
1。操作環(huán)境是 RedHat 9.0,vsFTPd的版本是Redhat 9.0所帶的vsftpd-1.1.3-8.i386.rpm,在安裝盤的第三張中
2。vsFTPd實現(xiàn)的最基本的目的:用系統(tǒng)中存在的真實用戶能登入FTP,能用匿名訪問。
3。 本帖中vsFTPd運行模式是在standalone模式下運行的,也就是說,本帖中vsFTPd所有的功能都是在standalone模式下運行的。至 于有些功能是否能在xinetd模式下運行,您就得測試了,不能照搬照抄。因為有些功能是必須運行在特定的模式下的。
4。服務(wù)器的IP和和DNS設(shè)定
第一塊網(wǎng)卡
IP:192.168.0.1
子掩碼:255.255.255.0
網(wǎng)關(guān)不設(shè)置:
第二塊網(wǎng)卡:
IP:192.168.0.2
子掩碼:255.255.255.0
網(wǎng)關(guān)不設(shè)置
因 為我的操作環(huán)境是一個小型的局域網(wǎng),所以其它的機器的IP都是在192.168.0這個網(wǎng)段上。ADSL是接在服務(wù)器的第一個網(wǎng)卡上。服務(wù)器的第二個網(wǎng)卡 是接集線器,其它的客戶機都是接在集線器上。為了能讓ADSL訪問internet,因為自己手動設(shè)置了IP,所以DNS也要自己來設(shè)置,DNS如下:
202.96.134.133
202.96.168.68
設(shè)置工具是:
[root@linuxsir001 root]# RedHat-config-network
一。用vsFTPd來架設(shè)FTP服務(wù)器,vsFTPd服務(wù)器是目前最好的FTP服務(wù)器軟件,優(yōu)點是體積小,可定制強,效率高
1。查看是否安裝了vsFTPd軟件
[root@linuxsir001 root]# rpm -qa | grep vsftpd
如果沒有任何顯示,說明沒有把vsFTPd安裝上,如果出現(xiàn)的是下面的這樣的提示,就證明已經(jīng)安裝上了。
[root@linuxsir001 root]# rpm -qa | grep vsftpd
vsftpd-1.1.3-8
我以 RedHat 9.0,以其自帶的vsFTPd包vsftpd-1.1.3-8版本來為本帖約定。
[root@linuxsir001 root]# rpm -ivh vsftpd*.rpm
2。打開vsFTPd服務(wù)器。
[root@linuxsir001 root]# ntsysv
把vsftpd服務(wù)器打開,也就是在運行 ntsysv命令后,把vsftpd服務(wù)選中。
[*] vsftpd
3。運行/etc/init.d/vsftpd start
[root@linuxsir001 root]# /etc/init.d/vsftpd start
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
4。 配制vsFTPd,vsFTPd的運行有兩種模式,一種是standalone "initd"模式,另外一種是xinetd模式,上面我們所說的就是standalone "initd"運行模式。兩種模式運行機制不是相同的,stardard initd模式,適合專業(yè)FTP,且FTP總是一直有人訪問,占用資源也是比較大,如果您的FTP總是有人訪問和登入。就要用這種模式。如果您的FTP訪 問人數(shù)比較小,建議您用xinetd模式。xinetd模式,是當(dāng)用戶請求時,vsFTPd才會啟動。
不同的環(huán)境,當(dāng)然得用不同的啟動模式。
1]我們主要把vsFTPd的配制文件改一下就行了。配制文件在/etc/vsftpd/vsftpd.conf,用您喜歡的編輯器打開。請參考下面的配制文件。
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are very paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
#
# Allow anonymous FTP?
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES
2]更改完配制文件后,我們可以用下面的命令來重啟vsFTPd服務(wù)器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
關(guān)閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
3]以匿名方式來訪問測試,在text模式下:
注意:在text模式下,要用用戶名ftp,密碼ftp來訪問,這才是在text中匿名訪問FTP。看如下的操作:
[root@linuxsir001 root]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:root): ftp 這里寫上ftp
331 Please specify the password.
Password:[這里添寫ftp的密碼],匿名登入密碼也是ftp
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,0,1,137,151)
150 Here comes the directory listing.
drwxr-xr-x 6 0 0 4096 May 25 13:54 RedHat90
drwxr-xr-x 2 0 0 4096 Feb 28 19:21 pub
226 Directory send OK.
ftp>
那匿名用戶所訪問的是哪個目錄?是/var/ftp這個目錄
出現(xiàn)問題的解決:有時出錯,是因為沒有ftp和nobody用戶,所以要在系統(tǒng)中添加這兩個用戶,一般的情況下,這兩個用戶在系統(tǒng)中是存在的。看下面的操作。
[root@linuxsir001 root]# adduser ftp
adduser: user ftp exists
[root@linuxsir001 root]# adduser nobody
adduser: user nobody exists
從上面的操作中可知ftp和nobody用戶是存在的,所以沒有必要添加ftp和nobody用戶了。如果不存在,一定要添加這兩個用戶,否則會出現(xiàn)匿名用戶不能訪問的情況。
4]如果要以系統(tǒng)中存在的普通用戶登入FTP,也沒有什么可以設(shè)置的,添加一個用戶就行。比如我要添加beinan這個用戶,就要用下面的辦法
[root@linuxsir001 root]# adduser beinan
[root@linuxsir001 root]# passwd beinan
Changing password for user beinan.
New password:
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@linuxsir001 root]#
這樣的話,就在/home目錄中出現(xiàn)一個beinan的用戶目錄:如下:
[root@linuxsir001 root]# ls /home/
beinan
如果我們想讓beinan這個用戶作為虛擬用戶,也就是說,beinan這個用戶是不能登入系統(tǒng)的,只能是登入FTP。 那這樣的用戶應(yīng)該如何添加呢??
[root@linuxsir001 backupNow]# adduser -g ftp -s /sbin/nologin beinan
[root@linuxsir001 backupNow]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@linuxsir001 backupNow]#
注: 這僅僅是vsFTPd添加虛擬用戶的一個方法,還有更好的辦法需要我們?nèi)W(xué)習(xí)!另外的辦法也在測試之中。嚴(yán)格上來說,這種辦法不能算虛擬用戶。還有另外的 一個辦法,就是通過pam認證,用db_load來添加用戶,目前我也弄成功了,不過相對要復(fù)雜一點。正在測試之中。
如果我們想把用戶目錄定位到別的目錄應(yīng)該怎么辦呢??這個也比較簡單,看一下useradd就比較明白了。比如我想添加beinan這個用戶,并把目錄放在/opt目錄中:如下操作:
[root@linuxsir001 root]# adduser -d /opt/beinan beinan
[root@linuxsir001 root]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
如果是添加虛擬用戶,也就是不讓用戶登入系統(tǒng),只能登入FTP的用戶。如果我們想把beinan這個用戶目錄定位在/opt/beinan這個目錄中,根據(jù)上面的方法。我們應(yīng)該如下操作
[root@linuxsir001 backupNow]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan
[root@linuxsir001 backupNow]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@linuxsir001 backupNow]#
看一下是不是已經(jīng)成功添加到了beinan這個用戶,并把beinan的家目錄放在了/opt目錄中呢??
[root@linuxsir001 root]# ls /opt/
beinan
證明已經(jīng)成功。
我們可以在text模式下以beinan用戶登入,然后來訪問ftp。
[root@linuxsir001 root]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:root): beinan
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
是不是成功了???
我們也可以用gftp來訪問beinan用戶,并上傳相應(yīng)的東西,所傳上的東西就放在beinan用戶所在的家目錄中,普通用戶的家目錄在哪里,寫您所用的添加用戶的方法有關(guān)。我在前面已經(jīng)說了兩種辦法,一種是默認的添加方法,就是放在/home目錄中。
在本例中,我是采用默認的添加用戶的方法。也就是不特別指定用戶用戶,這樣的話,用戶目錄就在/home目錄中。比如用beinan登入FTP時,訪問的就是/home/beinan這個目錄。讓傳的東西也在這個目錄中。
那匿名用戶所訪問的是哪個目錄呢???
應(yīng)該是:/var/ftp這個目錄
5]訪問ftp的幾種方法
第一種方法就是text訪問,也就是用ftp命令來訪問。這個前面已經(jīng)說過了。
第 二種方法是以客戶端FTP軟件來訪問,在linux中有g(shù)ftp。在本例中,我的FTP地址是通過局域網(wǎng)訪問的。地址欄中,添上192.168.0.1, 端口是21,用戶名和密碼的添寫,如果您是用匿名登入,請不要添寫用戶名和密碼。如果用普通用戶登入,這個是必須要用用戶名和密碼的。
第三種辦法是和瀏覽器訪問:如果匿名登入,就直接用下面的方法:
ftp://192.168.0.1
如果是用戶登入方式,應(yīng)該是
ftp://beinan@192.168.0.1
如果想讓在互聯(lián)網(wǎng)上的用戶能訪問到,如果您是用ADSL來訪問互聯(lián)網(wǎng),要查找到您的動態(tài)IP,用下面的辦法
[root@linuxsir001 root]# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:218.61.7.23 P-t-P:218.61.7.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:24245 errors:0 dropped:0 overruns:0 frame:0
TX packets:20411 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:23103297 (22.0 Mb) TX bytes:3588337 (3.4 Mb)
從上面的可以知道,能讓在internet訪問的地址是:218.61.7.23
二。如何讓局域網(wǎng)通過這個FTP安裝Linux呢??以 RedHat 9.0為例:
1。我們要在/var/ftp中,為每個發(fā)行版建一個目錄,然后把每個發(fā)行版的每個版本再建一個目錄。把每個版本的ISO都解壓到相應(yīng)的目錄里。舉個例子:
比如我想讓其它的客戶機,通過我的服務(wù)器來安裝 RedHat9.0,我就要在/var/ftp目錄中建一個RedHat90的目錄,然后把RedHat 9.0的三個ISO都解到這個目錄中。
這樣服務(wù)器的設(shè)置就完成了。
2。客戶機方面如何引導(dǎo)及設(shè)置???我們可以做一個系統(tǒng)的引志盤,但有的發(fā)行版也沒有必要。這也要以各個發(fā)行版的情況而定。比如 RedHat 9.0的安裝,如果您的客戶機上有windows,就直接通過局域網(wǎng)的FTP,dosutils images isolinux三個目錄放到一個在fat32分區(qū)中建的目錄中,比如說在客戶機上建一個Redhat9的目錄,然后把三個文件拷到客戶機中的fat32 分區(qū)中的Redhat9的目錄中。
3.客戶機安裝及操作:
以DOS盤引導(dǎo),不要加載CDROM,直接進入客戶機中fat32分區(qū) RedHat9dosutils目錄,執(zhí)行下面的命令。
autoboot
這樣就開始了安裝:
4.出現(xiàn)的畫面中,我們要選ftp安裝。在設(shè)置網(wǎng)絡(luò)環(huán)境時,我們要設(shè)置好IP和網(wǎng)關(guān)之類的。
以我的局域網(wǎng)為例:
客戶機的IP設(shè)置成192.168.0.5,掩碼也是2552555.255.0,網(wǎng)關(guān)設(shè)置成192.168.0.1。name 服務(wù)可以不設(shè)置。以匿名方式訪問FTP。
下一步會出現(xiàn)讓我們添寫FTP,及安裝源的地址,還是以我的局域網(wǎng)為例:
地址:192.168.0.1
路徑:因為我是把三個ISO放在了/var/ftp/ RedHat90的目錄下,我應(yīng)該寫如下的
/ RedHat90
這樣就OK了,一切和其它的安裝方式都是一樣的了。
因為每個發(fā)行版不太一樣,所以通過網(wǎng)絡(luò)安裝,有的要做引導(dǎo)盤,如何做引導(dǎo)盤,我想大家早就知道了。如果不知道這方面的,請用搜索來找這方面的帖子。
vsFTP服務(wù)器,相關(guān)的一系統(tǒng)補充
補充一:如何有選擇的把用戶限制在家目錄中呢?
我們要自己建一個文件,在/etc目錄中
#touch /etc/vsftpd.chroot_list
以beinan和nanbei這兩個用戶限制在他們所在的家目錄中,而其它的FTP用戶不做此限制。
在vsftpd.chroot_list這個文件中,把beinan和nanbei添上去就行,注意,每個用戶占一行。
beinan
nanbei
然后改/etc/vsftpd/vsftpd.conf文件,找如下的兩行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
把前面的#號去掉,也就是這樣的
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
如果沒有這樣的兩行,就可以自己添加上去也是一樣的。
設(shè)置好后,重新vsFTPD服務(wù)器。
補充一之補充:如何把系統(tǒng)內(nèi)所有的FTP用戶都限制在家目錄中呢??經(jīng)juliaugong兄的提示,我查找了vsFTPd的洋文說明,證明這個選項是一刀切的解決所有的用戶都能限制在家目錄中
我們可以通過更改vsftpd.conf文件,加入如下的一行
chroot_local_user=YES
改完配制文件,不要忘記重啟vsFTPd服務(wù)器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
關(guān)閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
補充二:打開vsFTP服務(wù)器的日志功能:
把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日志功能,這對于我們來說是極為重要的。
#xferlog_file=/var/log/vsftpd.log
補充三:如何讓綁定IP到vsFTP?也就是說,如何讓用戶只能通過某個IP來訪問FTP。其實這個功能很有意思。如果綁定的是內(nèi)網(wǎng)的IP,外部是沒有辦法訪問的。如果綁定的是對外服務(wù)的IP,內(nèi)網(wǎng)也只能通過對外服務(wù)的IP來訪問FTP
在/etc/vsftpd/vsftpd.conf中加一行,以我的局域網(wǎng)為例,請看第一帖中的操作環(huán)境,這樣外網(wǎng)就不能訪問我的FTP了,內(nèi)網(wǎng)也可能通過192.168.0.2來訪問FTP
listen_address=192.168.0.2
加完后,要重啟vsFTP服務(wù)器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
關(guān)閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
補充四:如何讓vsFTP服務(wù)器限制鏈接數(shù),以及每個IP最大的鏈接數(shù)??
答:應(yīng)該改vsFTP服務(wù)器的配制文件vsftpd.conf,加入下面的兩行:
max_clients=數(shù)字
max_per_ip=數(shù)字
舉例:我想讓我的vsFTP最大支持鏈接數(shù)為100個,每個IP,最多能支持5個鏈接,所以我應(yīng)該在vsftpd.conf中加上如下的兩行:
max_clients=100
max_per_ip=5
改好了配制文件,不要忘記啟動vsftp服務(wù)器。
補充五:如何限制下載的速度?
anon_max_rate=數(shù)字 注:這是匿名的下載速度
local_max_rate=數(shù)字 注:這是vsFTP服務(wù)器上普通用戶的下載速度
注:這個數(shù)字的單位是字節(jié),所以我們要計算一下。比如我想讓匿名用戶和vsFTP上的用戶都以80KB下載,所以這個數(shù)字應(yīng)該是1024x80=81920
所以我們要在vsftpd.conf中加入下面的兩行
anon_max_rate=81920
local_max_rate=81920
不要忘記重啟vsftpd服務(wù)
補充六:我的硬盤空間有限,如何把帳號ftp默認的路徑/var/ftp更改到別處?或者是,我的linux所有的目錄都放在/根分區(qū),因為空間緊張,我能否把ftp這個用戶的默認路徑放到別的分區(qū)??
可以,應(yīng)該如下操作!
首先要把ftp這個用戶刪除
#userdel -r ftp
會有錯誤信息,不過不用理,這是正常的。
然后我們再把這個用戶添加上,比如我想為帳號ftp的家目錄設(shè)置在/mnt/LinG/ftp,我們就可以如下操作
[root@linuxsir001 root]# mkdir /mnt/LinG
[root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp
僅僅是這樣做還不行,因為這樣還是不能讓匿名用戶找到它的家目錄,所以我們必須改變/mnt/LinG/ftp這個目錄的權(quán)限。
[root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/
[root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/
補充七:如何定制歡迎信息,也就是我們登入有些FTP之后,會出現(xiàn)類似:歡迎您來到LinuxSir FTP,在這里,您會得到最真誠的幫助,如果有什么問題和建議,請來信,多謝。
實現(xiàn)這個并不難,我們可以查看vsftpd.cof文件中,是否有這行。
dirmessage_enable=YES
如果沒有就加上,如果dirmessage_enable=YES前面有#號,就把#號去掉。
然后我們制定一個.message文件,寫上您想要寫的東西,比如是.message的內(nèi)容是如下的:
歡迎您來到LinuxSir FTP!
在這里,您會得到最真誠的幫助;
如果有什么問題和建議,請來信,多謝。
我們可以用編輯器來寫這個.message,我想這個過程就不用說了吧。
然后我們把.message這個文件復(fù)制到各個用戶的家目錄中。比如我的FTP的一個用戶是beinan,這個用戶所在的家目錄是/home/beinan
我 們就要把.message放在/home/beinan這個目錄下。如果系統(tǒng)用戶ftp,他的目錄就是/var/ftp這個目錄,這個是默認的,當(dāng)匿名用 戶登入時就訪問的是/var/ftp這個目錄。我們要讓匿名用戶能看到歡迎信息。就要把.message放在/var/ftp目錄中。其它的用戶,也無非 就是類似的操作。
補充八:如何實現(xiàn)虛擬路徑?
比如:
/home/a 映射為 ftp://localhost/a
/home/b/c 則為 ftp://localhost/c
其實這個不能說是vsFTPd的內(nèi)容,其實我們早就接觸過了,可能我們沒有注意,我們可以通過如下的方法來實現(xiàn)。
#mount --bind [原有的目錄] [新目錄]
比如我的ftp的默認目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作
我們要先在/var/ftp目錄中建一個目錄
#mkdir /var/ftp/WinSoft
然后執(zhí)行mount命令
#mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
這樣就OK了。
補充九:如何上匿名訪問、上傳,并支持下載和執(zhí)行?
在默認的情況下,vsftp是不支持匿名用戶的訪問的,所以我們要自己打開相應(yīng)的選項。現(xiàn)在我針對這個問題,我們要打開如下的選項。
anonymous_enable=YES 注:允許匿名訪問
anon_upload_enable=YES 注:允許上傳
anon_mkdir_write_enable=YES 注:允許建立相應(yīng)的目錄
anon_umask=022 把上傳到FTP的文件或者目錄改變權(quán)限
當(dāng) 然打開這些選項還是不行的,我們還要讓匿名寫入文件的上一級目錄有寫入權(quán),以我所做的FTP為例,我所做的FTP的匿名訪問的目錄是/var/ftp,在 vsFTPd中,/var/ftp這個目錄是不能讓匿名用戶有寫入權(quán)限的,這是為了安全考慮,所以我們必須自己在/var/ftp目錄中建一個目錄,讓這 個目錄有寫入權(quán)。
比如:我在/var/ftp目錄建一個upload目錄,然后把它的權(quán)限設(shè)置成777,這樣匿名用戶就能寫入了。
#mkdir /var/ftp/upload
#chmod 777 /var/ftp/upload
改了一系列的文件,不要忘記重啟vsFTPd服務(wù)器
我是用standalone模式的,當(dāng)然用下面的方法
[root@linuxsir001 root]# service vsftpd restart
關(guān)閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
如果您用的是xinetd模式來啟動vsFTPd,我們要重啟xinetd服務(wù)器
[root@linuxsir001 root]# service xinetd restart
停止 xinetd: [ 確定 ]
啟動 xinetd: [ 確定 ]
[root@linuxsir001 root]# ]
補充十:通過pam認證方式,添加虛擬用戶
通過pam認證,用db_load添加用戶,是真正的虛擬用戶。現(xiàn)在我們簡單的介紹一下,通過以后的學(xué)習(xí),我們再深入補充:
1。在/etc/pam.d/目錄中創(chuàng)建一個文件ftp
[root@linuxsir001 root]# touch /etc/pam.d/ftp
2。在/etc/pam.d/ftp里面加上如下的兩行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
3。創(chuàng)建一系統(tǒng)的用戶名用密碼的文件logins.txt
[root@linuxsir001 root]# touch logins.txt
在 logins.txt文件中,輸入如下的內(nèi)容。這個內(nèi)容您可以自己來定。比如我下面的。其實linuxsir007是FTP的虛擬用戶名,123456是 linuxsir007的密碼;linuxsir008是虛擬用戶名,234567是linuxsir008的密碼,以此類推,您想加入幾個就是幾個;下 面是我添加的FTP的虛擬用戶名和密碼。
linuxsir007
123456
linuxsir008
234567
linuxsir009
567890
linuxsir010
678901
linuxsir011
789012
4。創(chuàng)建一個真實的用戶名linuxsir006,這個linuxsir006的用戶,所在的家目錄由您來定。我在這里不多說了。我是按系統(tǒng)默認的來添加的。
[root@linuxsir001 root]# useradd linuxsir006
5。把/etc/hosts復(fù)制到/home/linuxsir006,并改變它的屬主
[root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts
[root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts
6。通過db_load來創(chuàng)建虛擬用戶的庫文件。我們在前面建的logins.txt文件,我是放在了/root用戶目錄下。所以咱們得把目錄切換到/root目錄來創(chuàng)建虛擬用戶的庫文件。
[root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
7。更改vsftpd.conf文件,加入如下的幾行
pam_service_name=ftp
guest_enable=YES
guest_username=linuxsir006
anon_world_readable_only=NO
8。重啟vsFTPd服務(wù)器;改了一系列的文件,不要忘記重啟vsFTPd服務(wù)器
我是用standalone模式的,當(dāng)然用下面的方法
[root@linuxsir001 root]# service vsftpd restart
關(guān)閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
如果您用的是xinetd模式來啟動vsFTPd,我們要重啟xinetd服務(wù)器
[root@linuxsir001 root]# service xinetd restart
停止 xinetd: [ 確定 ]
啟動 xinetd: [ 確定 ]
[root@linuxsir001 root]#
9。如果您想讓用戶登入FTP時,登入成功的相應(yīng)的信息,請把您制作的.message復(fù)制到您的用戶的家目錄中,這方面的請參考前面的補充。
10。測試:
[root@linuxsir001 root]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:root): linuxsir007
331 Please specify the password.
Password:
230-歡迎光臨LinuxSir自由FTP
230-在這里,您將得到最真誠的幫助!
230-本站限度為30KB!
230-每個IP限四個線程
230-請大家遵守FTP的有關(guān)規(guī)定。
230-多謝合作!
230-
230-LinuxSir管理部
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,0,1,85,171)
150 Here comes the directory listing.
-rw-r--r-- 1 ftp ftp 174 Jun 01 12:59 hosts
drwxr-xr-x 3 ftp ftp 4096 Jun 01 13:29 linuxsir008
drwxr-xr-x 2 ftp ftp 4096 Jun 01 13:24 sun
226 Directory send OK.
ftp>
補充十一:如何把 RedHat 9.0中系統(tǒng)默認安裝的vsftpd-1.1.3-8.i386.rpm,系統(tǒng)默認vsFTPd是用standalone啟動方式 ,改為xinetd啟動方式 ?
如果是用源碼包安裝的,安裝后就是xinetd模式,如果是用RPM包安裝的,在 RedHat 9.0中,應(yīng)該用下面的方法來解決。
1.在/etc/xinetd.d/目錄中創(chuàng)建一個文件vsftpd
[root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd
/etc/xinetd.d/vsftpd內(nèi)容如下:
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = no
}
2。 復(fù)制vsftpd.conf到/etc/目錄下,因為xinetd對vsFTPd配制文件應(yīng)該在/etc目錄下,所以我們就必須把這個文件復(fù)制到/etc 目錄下,否則會出現(xiàn)系統(tǒng)中l(wèi)ocal用戶無法登入,也就是說,不復(fù)制這個文件會出現(xiàn)ftp非匿名用戶無法訪問,只能用匿名用戶訪問。
[root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf
3。更改配制文件/etc/vsftpd.conf,把如下的項注掉:
也就是把
listen=YES改為
#listen=YES
或者是把這行刪除也行。
4。把/etc/init.d/vsftpd這個文件刪除。其實最好的備份到別處,因為我們有時實驗來實驗去,可能還會轉(zhuǎn)到standalone模式啟動。我就直接移動到別的目錄,比如是/root下面的backup目錄。
[root@linuxsir001 root]#mkdir /root/backup
[root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup
5。運行ntsysv,把vsftpd的服務(wù)取消
[root@linuxsir001 root]#ntsysv
[ ] vsftpd
6。重啟xinetd服務(wù)
[root@linuxsir001 root]# service xinetd restart
轉(zhuǎn)載于:https://my.oschina.net/accesssoul/blog/61396
總結(jié)
以上是生活随笔為你收集整理的Linux下VSFTP配置全攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Relativelay
- 下一篇: 人的价值不在于能力,而在于位置 » 社区