FTP服務(wù)器配置過程的具體命令
這篇文章我們主要介紹一下FTP服務(wù)器配置過程。在前面的文章中,我們對于FTP服務(wù)器的創(chuàng)建步驟進行了具體的講解。那么從中大家也應(yīng)該發(fā)現(xiàn)了一些問題。那么從前面文章的內(nèi)容發(fā)現(xiàn):FTP服務(wù)器的用戶本身也是系統(tǒng)用戶。這顯然是一個安全隱患,因為這些用戶不僅能夠訪問FTP,也能夠訪問其它的系統(tǒng)資源。如何解決這個問題呢?答案就是創(chuàng)建一個虛擬用戶的FTP服務(wù)器。虛擬用戶的特點是只能訪問服務(wù)器為其提供的FTP服務(wù),而不能訪問系統(tǒng)的其它資源。所以,如果想讓用戶對FTP服務(wù)器站內(nèi)具有寫權(quán)限,但又不允許訪問系統(tǒng)其它資源,可以使用虛擬用戶來提高系統(tǒng)的安全性。在VSFTP中,認證這些虛擬用戶使用的是單獨的口令庫文件(pam_userdb),由可插入認證模塊(PAM)認證。使用這種方式更加安全,并且配置更加靈活。
下面介紹FTP服務(wù)器配置過程。
FTP服務(wù)器配置過程1.生成虛擬用戶口令庫文件。為了建立此口令庫文件,先要生成一個文本文件。該文件的格式如下,單數(shù)行為用戶名,偶數(shù)行為口令:
- #vi account.txt
- ylg
- 1234
- zhanghong
- 4321
- gou
- 5678
FTP服務(wù)器配置過程2.生成口令庫文件,并修改其權(quán)限:
- #db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
- #chmod 600 /etc/vsftpd/account.db
FTP服務(wù)器配置過程3.新建一個虛擬用戶的PAM文件。加上如下兩行內(nèi)容:
- #vi /etc/pam.d/vsftp.vu
- auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
- account required /lib/security/pam_userdb.so db=/etc/vsftpd/account
FTP服務(wù)器配置過程4.建立虛擬用戶,設(shè)置該用戶所要訪問的目錄,并設(shè)置虛擬用戶訪問的權(quán)限:
- #useradd -d /ftpsite virtual_user
- #chmod 700 /ftpsite
經(jīng)過該步驟的設(shè)置,/ftpsite就是virtual_user用戶的主目錄,該用戶也是/ftpsite目錄的擁有者。除root用戶之外,只有該用戶具有對該目錄的讀、寫和執(zhí)行的權(quán)限。
FTP服務(wù)器配置過程5.生成一個測試文件。先切換至virtual_user用戶身份,然后在/ftpsite目錄下創(chuàng)建一個文件:
- #su -virtual_user
- $vi /ftpsite/mytest
- This is a test file.
- $su - root
FTP服務(wù)器配置過程6.編輯/etc/vsftpd/vsftpd.conf文件,使其整個文件內(nèi)容如下所示(去掉了注釋內(nèi)容):
- anonymous_enable=NO
- local_enable=YES
- local_umask=022
- xferlog_enable=YES
- connect_from_port_20=YES
- xferlog_std_format=YES
- listen=YES
- write_enable=YES
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
- anon_other_write_enable=YES
- one_process_model=NO
- chroot_local_user=YES
- ftpd_banner=Welcom to my FTP server.
- anon_world_readable_only=NO
- guest_enable=YES
- guest_username=virtual_user
- pam_service_name=vsftp.vu
上面代碼中,guest_enable=YES表示啟用虛擬用戶;guest_username=virtual則是將虛擬用戶映射為本地用戶,這樣虛擬用戶登錄后才能進入本地用戶virtual的目錄/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件為vsftp.vu。
FTP服務(wù)器配置過程7.重新啟動VSFTP
- #service vsftpd restart
#p#FTP服務(wù)器配置過程8.以虛擬用戶gou(Linux中并無該賬號)進行測試:
- # ftp 127.0.0.1
- Connected to 127.0.0.1 (127.0.0.1).
- 220 Welcom to my FTP server.
- Name (127.0.0.1:root): gou
- 331 Please specify the password.
- Password:
- 230 Login successful. Have fun.
- Remote system type is UNIX.
- Using binary mode to transfer files.
測試下載服務(wù)器目錄中的一個文件mytest:
- ftp> get mytest
- local: mytest remote: mytest
- 227 Entering Passive Mode (127,0,0,1,159,19)
- 150 Opening BINARY mode data connection for mytest (21 bytes).
- 226 File send OK.
- 21 bytes received in 0.00038 secs (54 Kbytes/sec)
測試上傳本機目錄中的文件vsftpd.conf:
- ftp> !ls
- account.db chroot_list k mytest userconf vsftpd.conf
- ftp> put vsftpd.conf
- local: vsftpd.conf remote: vsftpd.conf
- 227 Entering Passive Mode (127,0,0,1,117,203)
- 150 Ok to send data.
- 226 File receive OK.
- 4229 bytes sent in 0.00195 secs (2.1e+03 Kbytes/sec)
可以看到,使用沒有系統(tǒng)賬號的虛擬用戶可以成功完成上傳、下載的工作。但該FTP虛擬服務(wù)器只允許虛擬用戶登錄,其它系統(tǒng)用戶無法登錄,如系統(tǒng)用戶user1不是虛擬用戶,則不能登錄該虛擬服務(wù)器。
- # ftp 127.0.0.1
- Connected to 127.0.0.1 (127.0.0.1).
- 220 Welcom to my FTP server.
- Name (127.0.0.1:root): user1
- 331 Please specify the password.
- Password:
- 530 Login incorrect.
- Login failed.
在虛擬FTP服務(wù)器中,也可以對各個用戶的權(quán)限進行設(shè)置。方法是在/etc/vsftpd.conf文件中添加如下一行:
- user_config_dir=用戶配置文件目錄
然后在用戶配置文件目錄下創(chuàng)建相應(yīng)的用戶配置文件,比如為上述名為gou的用戶創(chuàng)建一個配置文件(假設(shè)配置文件目錄為/etc/user_config_dir):
- #vi /etc/user_config_dir/gou
- write_enable=NO
- anono_upload_enable=NO
重啟FTP服務(wù)器,這時再使用賬號gou來登錄,就已經(jīng)沒有上傳的權(quán)限了。