FTP服務器配置
VSFTP主配置文件路徑:/etc/vsftpd/vsftpd.conf,重要參數:
anonymous_enable=yes/no 是否允許匿名用戶訪問
anon_upload_enable=yes/no 是否允許匿名用戶上傳文件
anon_mkdir_write_enable=yes/no 是否允許匿名用戶創建目錄
anon_other_write_enable=yes/no 匿名用戶和虛擬用戶是否擁有刪除權限
local_enable=yes/no 是否允許本地用戶登陸
write_enable=yes/no 設置全局是否可寫
anon_root=/var 指定匿名用戶目錄
chroot_local_user=yes 鎖定所有用戶到用戶主目錄
chroot_list_enable=yes/no 鎖定列表中的用戶到主目錄,需要配合下一參數使用
chroot_list_file=/etc/vsftpd/chroot_list 指定存儲被鎖定用戶的列表文件位置
chown_uploads=yes/no 匿名用戶上傳所有者指定功能,需要與下一參數配合使用
chown_username=用戶名 指定匿名用戶上傳文件的所有者
max_clients=300 最大客戶端連接數為300
anon_max_rate=30000 匿名用戶和虛擬用戶限速為30K/S
local_max_rate=30000 本地用戶限速為30K/S
max_per_ip=10 每個IP最大連接數
listen_port=22 更改監聽端口
實現如下要求:允許匿名用戶登陸,匿名用戶限速為60K/S,只允許下載。監聽端口為22,最大連接數為10。新建用戶ftp1,限速為200K/S,允許上傳下載刪除新建文件夾。進入目錄/etc/vsftpd,用vi編輯器打開vsftpd.conf主配置文件:
直接添加以下選項: [root@LidadeFedora vsftpd]# service vsftpd restart
添加用戶ftp1,設置登錄腳本為 /sbin/nologin:
vsftp默認目錄為:/var/ftp,為方便測試,在/var/ftp下新建一個文件”testLocal”,在”/var/ftp/pub”新建一個文件”testAnon”。
由于使用root用戶新建文件,文件的所有者為root,所以需要把文件的權限設置為644其他用戶才能讀取該文件
設置/var/ftp/pub權限為777,表示所有用戶均有讀寫權限.
由于端口22被ssh服務器占用,所以需要關閉ssh服務并重啟vsftp服務。
客戶端用Flashfxp測試:新建站點”VsftpTest”,輸入Vsftp服務器的IP地址,端口填22,用戶名填ftp1,密碼填你設置的密碼,然后點擊”連接”按鈕:
由于沒有使用選項:local_root,登陸本地用戶時自動跳轉到該用戶的主目錄.沒有使用chroot_local_user=yes,所以本地用戶可以瀏覽整個文件系統中他有權限讀取的文件和文件夾:
切換到目錄”/var/ftp/pub”,該目錄的權限為777,上傳一個10M以上的文件,測試ftp1的上傳速度:
新建文件夾和刪除權限測試省略。下面測試匿名用戶權限:勾選”匿名”選項并連接:
匿名用戶登陸成功: 進入pub目錄,嘗試刪除testAnon文件失敗,說明這里是配置文件中的anon_other_write_enable=no生效了。最終權限等于配置文件中的權限和linux文件系統權限相或的結果。比如vsftp配置文件中允許匿名用戶下載,但光這樣是不夠的,還需要被下載的文件或文件夾的能夠被其他用戶讀取。
嘗試上傳文件失敗,符合匿名用戶只允許下載的要求:
最后測試匿名用戶的下載速度:
vsftp的配置參數總共也就10來行,但是想要使用好它,絕沒有單單理解這10來行這么簡單,需要對每一行所定義的參數都理解透徹才可以.
匿名用戶的配置:
anonymous_enable=YES //允許匿名用戶登錄
anon_root=/var/ftp/anonymous //設定匿名用戶登錄后的根目錄
anon_upload_enable=YES //允許匿名用戶上傳文件
只需要打開如上的參數即可,不用做其他的設置.本地用戶登錄配置
首先說一下概念,什么是本地用戶,本地用戶就是你系統/home目錄下的用戶,當然有的用戶建立時候使用-m命令,使用戶在/home下沒有目錄,但是這個詞的意思就是系統里面有的用戶.
local_enable=YES //允許本地用戶登錄
local_root=/home //限制本地用戶登錄后的根目錄
eg:
[root@centos ftp]# ftp 192.168.0.125
Connected to 192.168.0.125.
220 (vsFTPd 2.0.5)
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.125:root): xu
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 (192,168,0,125,135,123)
150 Here comes the directory listing.
drwx—— 2 505 503 4096 Jun 26 09:42 chuan
drwx—— 2 507 507 4096 Jun 30 22:26 ftp
drwx—— 2 504 502 4096 Jun 26 09:42 joe
drwx—— 2 506 503 4096 Jun 26 09:43 laomeng
drwx—— 2 502 504 4096 Jun 26 09:42 master
drwx—— 2 503 502 4096 Jun 26 09:42 mike
drwx—— 2 500 500 4096 Jun 25 21:34 xiaochuan
drwxrwxrwx 2 508 508 4096 Jun 30 22:39 xu
drwx—— 2 501 501 4096 Jun 25 20:25 xujunchuan
226 Directory send OK.
ftp> pwd
257 “/home”
限制用戶目錄部分
chroot_local_use=YES|NO //是否將本地用戶鎖定在家目錄
chroot_list_enable=YES|NO //是否鎖定使用者在家目錄中
chroot_list_file=/etc/vsftpd/chroot_list //一般情況下都將這個文件寫在/etc/vsftpd目錄下,這個文件就是設置鎖定用戶的一個列表文件,其中一行就代表一個用戶
設置歡迎信息
dirmessage_enable=YES
message_file=.message
[root@centos ftp]# cd /home
[root@centos home]# vi .message
welcomt to VSFTP………….
C:Documents and SettingsAdministrator>ftp 192.168.0.125
Connected to 192.168.0.125.
220 (vsFTPd 2.0.5)
User (192.168.0.125:(none)): xu
331 Please specify the password.
Password:
230-welcomt to VSFTP………….
230 Login successful.
ftp>
虛擬賬戶配置
本地賬戶vuser,目錄定在/var/ftp/vuser.虛擬賬戶may密碼123;ccc密碼123
隨意哪個目錄建立vuser.txt,按行將虛擬賬戶及其密碼輸入進去,我在/目錄下設置的,格式如下:
may
123
ccc
123
[root@centos /]# db_load -T -t hash -f vuser.txt /etc/vsftpd/vuser.db
[root@centos /]# cd /etc/vsftpd/
[root@centos vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vuser.db
[root@centos vsftpd]# vi chroot_list
vuser
[root@centos vsftpd]# ls
chroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vuser.db
[root@centos vsftpd]# vi vsftpd.conf //進入配置文件,更改如下配置
anonymous_enable=NO
local_enable=YES //虛擬帳戶對應的是系統本地用戶,所以必須開啟這一項
anon_upload_enable=YES //開啟此項以后,使用虛擬賬戶后可以上傳文件.
write_enable=YES //開啟用戶寫權限.與上面那個參數需要同時開啟,才可以上傳文件
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vuser
chroot_list_enable=YES //將虛擬用戶鎖定在其對應本地賬戶設置時的根目錄下.
chroot_list_file=/etc/vsftpd/chroot_list
多虛擬賬戶對應不同目錄的VSFTP
本地用戶vuser,ftpvip.虛擬賬戶ftp1,ftp2密碼均是123.ftp1對應vuser,ftp2對應ftpvip.
修改vuser.txt,添加新的虛擬賬戶.
[root@centos vsftpd]# vi /vuser.txt
may
123
ccc
123
ftp1
123
ftp2
123
[root@centos vsftpd]# useradd -d /var/ftp/vip ftpvip
修改主conf參數,增加以下配置,填寫”user_config_dir=/ftpconfig”,這個就是定義不同賬戶對應不同目錄的重要所在.
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
user_config_dir=/ftpconfig
ftp1和ftp2用戶的具體參數配置都需要/ftpconfig下的ftp1和ftp2文件來定義.我將已經寫好的配置如下:
[root@centos vsftpd]# cat /ftpconfig/ftp1
local_root=/var/ftp/vuser
guest_username=vuser
anon_world_readable_only=no
[root@centos vsftpd]# cat /ftpconfig/ftp2
local_root=/var/ftp/vip
guest_username=ftpvip
anon_world_readable_only=no
vsftp的含義就是Very Security Ftp,下面就簡要的說一下它的配置和使用方法,通過本文的介紹也希望您能了解在Linux下配置一個網絡服務的基本過程
1.相關配置文件
/etc/vsftpd.conf,vsftpd.ftpuser,vsftpd.user_list,/etc/xinetd.d/vsftpd
2.配置vsftp
主要是修改/etc/vsftpd.conf就可以了,相關參數如下:
anonymous_enable=YES 是否允許匿名ftp,如否則選擇NO
local_enable=YES 是否允許本地用戶登錄
local_umask=022 默認的umask碼
anon_upload_enable=YES 是否允許匿名上傳文件
anon_mkdir_write_enable=YES 是否允許匿名用戶有創建目錄的權利
dirmessage_enable=YES 是否顯示目錄說明文件,默認是YES但需要收工創建.message文件
xferlog_enable=YES 是否記錄ftp傳輸過程
connect_from_port_20=YES 是否確信端口傳輸來自20(ftp-data)
chown_upload=YES
chown_username=username 是否改變上傳文件的屬主,如果是需要輸入一個系統用戶名,你可以把上傳的文件都改成root屬主
xferlog_file=/var/log/vsftpd.log ftp傳輸日志的路徑和名字默認是/var/log/vsftpd.log
xferlog_std_format=YES 是否使用標準的ftp xferlog模式
idle_session_timeout=600 設置默認的斷開不活躍session的時間
data_connection_timeout=120 設置數據傳輸超時時間
nopriv_user=ftpsecure 運行vsftpd需要的非特權系統用戶默認是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 是否將系統用戶限止在自己的home目錄下,如果選擇了yes那么chroot_list_file=/etc/vsftpd.chroot_list中列出的是不chroot的用戶的列表
max_clients=Number 如果以standalone模式起動,那么只有$Number個用戶可以連接,其他的用戶將得到錯誤信息,默認是0不限止
message_file 設置訪問一個目錄時獲得的目錄信息文件的文件名,默認是.message
沒發現有限止帶寬的地方,如果誰知道請告訴我,詳細的幫助說明請參考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
VSFTP故障排除:
匿名用戶 /var/ftp
本地用戶 /home/username
配置vsftpd時,強烈建議
?# cp /etc/vsftpd.conf /etc/vsftpd.conf1 //備份,vsftpd.conf是個比較苛刻的主文件,修改時不小心在有效行后加一個空格就會使服務啟用失敗
# diff /etc/vsftpd.conf /etc/vsftpd.conf1 //文件內容比較
?做一步,重啟一下,測試
# vi /etc/vsftpd.conf
anonymous_enable=YES // :7 ,匿名帳戶可登陸
local_enable=YES // :10 ,本地帳戶可以登陸
write_enable=YES // :13 ,用戶通過ftp在服務器上是否有寫權限
local_umask=022 // :17 ,創建時默認權限。文件夾=777-umask,文件=666-umask
anon_upload_enable=YES // :22 ,允許匿名帳戶上傳
anon_mkdir_write_enable=YES // :26 ,允許匿名帳戶創建文件夾
chown_uploads=YES // :41 ,開啟匿名帳戶上傳自動更改所屬功能
chown_username=bob // :42 ,屬主改為bob
idle_session_timeout=600 // :52 ,空閑會話超時時間
ascii_upload_enable=YES // :76 ,以ASCII方式上傳
ftpd_banner=Welcome to blah FTP service. // :80 ,歡迎界面
chroot_list_enable=YES // :91 ,開啟用戶更改根目錄功能,默認為禁用更改根
chroot_list_file=/etc/vsftpd.chroot_list // :93 ,該文件中所有用戶無法更改根
查看文件其它參數 # man vsftpd.conf
anon_other_write_enable=YES // 允許匿名帳戶刪除、重命名
anon_root=/ftp // 更改匿名帳戶根目錄,默認為”/var/ftp”
local_root=/local // 更改本地帳戶根目錄為/local,默認為用戶主目錄~
userlist_enable=YES // 開啟用戶列表功能
userlist_deny=YES // 用戶列表文件中所有帳戶全拒絕。NO時,只有列表中用戶能登陸
userlist_file=/etc/vsftpd.user_list // 用戶列表文件
anon_max_rate=0 // 匿名用戶最大傳輸速率,0為無限
local_max_rate=0 // 本地用戶最大傳輸速率,0為無限
max_clients=0 // 最大客戶端連接數,0為無限
pasv_max_port=0 // 客戶端端口最大限制,0為無限制
pasv_min_port=0 // 客戶端端口最小限制,0為無限制
測試:
方法一、IE(不建議)
方法二、cmd(強烈推薦),有回顯提示。
ftp常用測試命令
? 幫助
bye 退出
quit 退出
exit 退出(僅linux客戶端)
cd 服務器端路徑更改
lcd 本地路徑更改
pwd 顯示服務器端當前路徑
dir 顯示服務器端當前目錄中內容(顯示權限)
ls 顯示服務器端當前目錄中內容(在linux中使用時也顯示權限)
put 上傳
get 下載
mkdir 建文件夾
rmdir 刪除文件夾
rename 重命名
delete 刪除文件
實驗一、針對于本地用戶的設置
1、限定只有本地帳戶能登陸,匿名帳戶無法登陸
2、本地帳戶bob不可以更改自已主目錄以外的其他目錄
3、在本地帳戶中只有bob能登陸,alice不能登陸
4、本地帳戶可以上傳文件,以ASCII方式上傳
5、登陸時顯示歡迎信息“Welcome to my ftp site”
# vi /etc/vsftpd.conf
anonymous_enable=NO // 1、:7;需改
local_enable=YES // 1、:10;默認,確認
230 Login successful. Have fun. 驗證:登陸成功提示
Login failed. 驗證:登陸失敗提示
chroot_list_enable=YES // 2、:91;需刪除開頭#號注釋
chroot_list_file=/etc/vsftpd.chroot_list // 2、:93;需刪除開頭#號注釋
ftp> pwd
257 “/” 驗證:成功顯示
257 “/home/bob” 驗證:改之前顯示
userlist_enable=YES // 3、添加
userlist_deny=NO // 3、添加
userlist_file=/etc/vsftpd.user_list // 3、添加
write_enable=YES // 4、:13;默認,確認
ascii_upload_enable=YES // 4、:76;需刪除開頭#號注釋
ftpd_banner=Welcome to my ftpsite // 5、:80;需刪除開頭#號注釋,需修改
x: > ftp 192.168.1.201
Connected to 192.168.1.201.
220 Welcome to my ftp site 驗證:未登陸提示
# echo bob >> /etc/vsftpd.user_list // 3、添加新行bob
# echo bob > /etc/vsftpd.chroot_list // 2、需存在該文件
# chkconfig vsftpd on // 超級守護立即啟動、開機自動啟動
# service xinetd restart // 重啟vsftpd服務
測試:
x: > ftp linux.wnt.com.cn
實驗二、針對于匿名帳戶的設置
1、只有匿名帳戶可以登陸
2、在FTP目錄下創建incoming目錄
3、允許匿名訪問,但不允許在ftp目錄中創建,刪除
4、允許匿名用戶在incoming目錄中上傳,創建,刪除目錄。
5、匿名帳戶上傳的文件,自動變為alice所屬
6、用戶空閑600秒自動中斷
7、匿名帳戶最大傳輸速率50kbytes/sec
8、客戶端口連接范圍50000到60000
# vi /etc/vsftpd.conf
anonymous_enable=YES // 1、:7或“/anonymous” 確認
local_enable=NO // 1、:10或“/local” 修改
anon_upload_enable=YES // 4、:22或“/upload” 刪除注釋
anon_mkdir_write_enable=YES // 4、:26或“/mkdir” 刪除注釋
anon_other_write_enable=YES // 4、:27 添加
chown_uploads=YES // 5、:41或“/chown” 刪除注釋
chown_username=alice // 5、:42 刪除注釋,再修改
idle_session_timeout=600 // 6、:52或“session” 刪除注釋
anon_max_rate=50000 // 7、 添加
pasv_min_port=50000 // 8、 添加
pasv_max_port=60000 // 8、 添加
# mkdir /var/ftp/incoming // 2、
# chmod go+w /var/ftp/incoming // 4、 g(group)組、o(other)其它人全有寫權限
# chkconfig vsftpd on ==> # service xinetd restart
實驗三、針對于超級守護的安全性限制(8。0版本可配,因9。0后vsftpd改為獨立守護進程不能用此方法)
1、限定192.168.1.0/24能訪問
2、10.0.0.0不能訪問
3、每個客戶機最大連接數1
4、服務器最大連接數200
5、只有13:00到17:00期間能訪問ftp服務器
# vi /etc/xinetd.d/vsftpd
only_from = 192.168.1.0 // 1、添加在括號內
no_access = 10.0.0.0 // 2、添加在括號內
per_source = 1 // 3、添加在括號內
instances = 200 // 4、添加在括號內
access_times = 13:00-17:00 // 5、添加在括號內
ftp客戶連接常見故障現象
現象0:
> ftp: connect :連接被拒絕
原因: 服務沒啟動
解決: # chkconfig –level 35 vsftpd on
現象1:
500 OOPS: cannot open user list file
原因: 不存在文件“/etc/vsftpd.user_list”或文件中不存在該帳戶
解決: # echo username >> /etc/vsftpd.user_list
現象2:
530 Permission denied.
Login failed.
原因: “/etc/vsftpd.user_list”文件中不存在當前登陸用戶
解決: # echo username >> /etc/vsftpd.user_list
現象3:
500 OOPS: cannot open chroot() user list file
Login failed.
原因: 不存在文件“/etc/vsftpd.chroot_list”
解決: # echo username >> /etc/vsftpd.chroot_list
現象4:
500 OOPS: missing value in config file
Connection closed by remote host.
原因: “=”等號前值有問題,或只有一個空格
解決: 修正相應的值即可,可能過 diff 來比較查找
現象5:
500 OOPS: bad bool value in config file
Connection closed by remote host.
原因: “=”等號后值有問題
解決: 將“=”等號后值確認修改
現象6:
500 OOPS: unrecognised variable in config file
Connection closed by remote host.
原因: 參數前有空格
解決: 將參數前空格刪除
現象7、
確認存在“local_enable=YES”,但本地用戶無法登陸
原因: 驗證參數被誤刪除
解決: 添加“pam_service_name=vsftpd”
現象8、
500 OOPS: chdir
500 OOPS: child died
Connection closed by remote host.
原因: 用戶主目錄沒有權限或沒有主目錄
解決: 正確設置用戶主目錄權限
RHEL4 VSFTP安裝:
實驗環境:AS4最小化安裝
實驗目標:架設VSFTP服務器
編輯: leige_linux 2009.5.29
聯系方式:
使用rpm命名可順利安裝該軟件包
# rpm -ivh vsftpd-2.0.1-5.i386.rpm
安裝完后默認就可以啟動vsftp服務了,
[root@localhost ~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
但是默認我們只能看,不能上傳。
1,下面我們開啟匿名用戶上傳
[root@localhost /]# vi /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@localhost /]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
2,將FTP本地用戶禁錮在宿主目錄中 ,在vsftpd.conf文件中添加設置項
chroot_local_user=YES
重新啟動vsftpd服務,# service vsftpd restart
3.建立虛擬帳號
a,建立虛擬用戶口令庫文件
[root@localhost ~]# cat logins.txt
mike
123
john
321
口令庫文件中奇數行設置用戶名,偶數行設置口令
b,生成vsftpd的認證文件(在第3張光盤中安裝)
[root@localhost RPMS]# rpm -ivh db4-utils-4.2.52-7.1.i386.rpm
warning: db4-utils-4.2.52-7.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing… ########################################### [100%]
1:db4-utils ########################################### [100%]
[root@localhost RPMS]# db_load -T -t hash -f /root/logins.txt /etc/vsftpd/vsftpd_login.db 生成認證文件
c, 設置認證文件只對用戶可讀可寫
# chmod 600 /etc/vsftpd/vsftpd_login.db
d,建立虛擬用戶所需的PAM配置文件
手工建立vsftpd.vu文件
# cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
e,建立虛擬用戶及要訪問的目錄并設置相應的權限
建立所有FTP虛擬用戶帳號使用的系統用戶帳號,并設置該帳號宿主目錄的權限
# useradd -d /home/ftpsite virtual
# chmod 700 /home/ftpsite
f,設置vsftpd.conf配置文件
在配置文件中添加虛擬用戶的配置內容
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
重新啟動vsftpd服務程序
g,對vsftpd.conf文件修改后需要重新啟動vsftpd服務程序
# service vsftpd restart
現在就應該可以用虛擬帳號登陸了,
4,對虛擬用戶設置不同的權限
設置主配置文件
在vsftpd.conf文件中添加用戶配置文件目錄設置
user_config_dir=/etc/vsftpd_user_conf
建立用戶配置文件目錄
使用mkdir命令建立用戶配置文件目錄
# mkdir /etc/vsftpd_user_conf
為虛擬用戶建立單獨的配置文件
用戶配置文件名稱與用戶名相同
/etc/vsftpd_user_conf/mike
/etc/vsftpd_user_conf/john
里面的內容如下:
anon_world_readable_only=NO 表示用戶可以瀏覽FTP目錄和下載文件
anon_upload_enable=YES 表示用戶可以上傳文件
anon_mkdir_write_enable=YES 表示用戶具有建立和刪除目錄的權限
anon_other_write_enable=YES 表示用戶具有文件改名和刪除文件的權限
沒有的配置項默認按照vsftpd.conf的配置內容
5,FTP服務器的資源限制
max_clients=100 允許最大的客戶端連接數
max_per_ip=5 同一IP最大客戶端的連接數
local_max_rate=5000000 設置本地用戶最大傳輸數率
anon_max_rate=2000000 匿名用戶最大的傳輸數率
虛擬用戶:
一:基本知識
1:虛擬用戶:與系統無關聯,不能登入系統,只能訪問FTP服務器
2:vsftp的服務進程是vsftpd
3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf .
4:vsftpd的用戶文件是/etc/vsftpd/ftpusers
5:vsftpd的用戶文件是/etc/vsftpd/user_list
6:推薦使用虛擬用戶登入vs-FTP服務器
二:建立虛擬用戶的過程
1:創建虛擬用戶文本文件,添加虛擬用戶和密碼
touch /etc/vsftpd/vuser.txt
mike
123456
john
123456
2:生成虛擬數據庫文件
db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
3:配置PAM文件,目的是對客戶端進行驗證
編輯/etc/pam.d/vsftpd文件,批注所有內容,后添加:
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
4:修改虛擬數據庫文件vuser.db的權限為 700
chmod 777 vuser.db
5:增加一個實體用戶vuser ,使用它來對應所有虛擬用戶,虛擬用戶使用實體用戶來訪問ftp服務器。
useradd -d /var/ftp/vuser vuser
mkdir /var/ftp/vuser
chown vuser.vuser /var/ftp/vuser
6:修改vsftpd.conf配置文件,使虛擬用戶可以訪問vsftpd服務器
guest_enable=YES ####激活虛擬賬戶
guest_username=vuser ####把虛擬賬戶綁定為實體賬戶vuser
pam_service_name=vsftpd ####使用PAM驗證
7:使用虛擬用戶mike成功訪問ftp服務器
三:控制虛擬用戶的訪問
1:設置虛擬用戶的主配置文件,編輯vsftpd.conf文件,激活:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
2: 建立vsftpd_user_conf
mkdir /etc/vsftpd/vsftpd_user_conf
3:設置虛擬用戶配置文件,與虛擬賬戶同名
touch /etc/vsftpd/vsftpd_user_conf/mike
4:編輯虛擬賬戶mike的配置文件mike,是虛擬賬戶mike獲得相應的權限
anon_world_readable_only=NO ###瀏覽FTP目錄和下載
anon_upload_enable=YES ###上傳
anon_mkdir_write_enable=YES ###建立和刪除目錄
anon_other_write_enable=YES ####改名和刪除文件
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87841