linux vsftpd 配置及使用详解
vsftpd配置詳解
1、簡介:
sftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個最大的特點。vsftpd 是一個 UNIX 類操作系統上
?
運行的服務器的名字,它可以運行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個完全免費的、開發源代
?
碼的ftp服務器軟件,支持很多其他的 FTP 服務器所不支持的特征。比如:非常高的安全性需求、帶寬限制、良好的可
?
伸縮性、可創建虛擬用戶、支持IPv6、速率高等。
?
vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特點是小巧輕快,安全易用。在開源操作系統中常用的
?
FTPD套件主要還有ProFTPD、PureFTPd和wuftpd等
?
2、特點
?
①vsftpd 是以一般身份啟動服務,所以對于 Linux 系統的使用權限較低,對于Linux 系統的危害就相對的減低了。此
?
外, vsftpd 亦利用 chroot() 這個函式進行改換根目錄的動作,使得系統工具不會被vsftpd 這支服務所誤用;
?
②任何需要具有較高執行權限的 vsftpd 指令均以一支特殊的上層程序( parent process ) 所控制 ,該上層程序享有
?
的較高執行權限功能已經被限制的相當的低,并以不影響Linux 本身的系統為準;
?
③所有來自 clients 端,想要使用這支上層程序所提供的較高執行權限之vsftpd 指令的需求,均被視為『不可信任的
?
要求』來處理,必需要經過相當程度的身份確認后,方可利用該上層程序的功能。例如chown(), Login 的要求等等動作;
?
④此外,上面提到的上層程序中,依然使用 chroot() 的功能來限制使用者的執行權限。
?
3、安裝啟動;
?
[root@localhost zko]# yum install -y vsftpd
[root@localhost zko]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@localhost zko]# chkconfig vsftpd on
?
4、配置說明:
?
[root@localhost zko]# ll /etc/vsftpd/ ----------------主目錄
total 20
-rw-------. 1 root root 125 Aug 4 18:35 ftpusers ---------------------黑名單
-rw-------. 1 root root 361 Aug 4 18:35 user_list ---------------------通過主配置文件設置該文件黑名單
-rw-------. 1 root root 4599 Aug 4 18:35 vsftpd.conf ---------------------主配置文件
-rwxr--r--. 1 root root 338 Aug 4 18:35 vsftpd_conf_migrate.sh
?
[root@localhost zko]# ls /var/ftp/ ----------------默認vsftpd共享目錄
[root@localhost zko]# /usr/sbin/vsftpd -------------主程序
?
//默認配置:
[root@localhost zko]# cat /etc/vsftpd/vsftpd.conf |grep -v '#'
anonymous_enable=YES //匿名訪問
local_enable=YES //啟用本機FTP功能
write_enable=YES //允許寫操作命令
local_umask=022 //本地賬戶權限掩碼
dirmessage_enable=YES //用戶進入目錄顯示消息
xferlog_enable=YES //開啟xferlog日志功能
connect_from_port_20=YES //主動模式連接,啟用20端口
xferlog_std_format=YES // xferlog日志文件格式
listen=YES //監聽端口,獨自運行守護進程
pam_service_name=vsftpd //
userlist_enable=YES //啟用userlist用戶列表文件
tcp_wrappers=YES //啟用tcp_wrappers
?
?
5、測試:
(1) 測試賬戶與文件:
[root@localhost zko]# useradd -s /sbin/nologin tom
[root@localhost zko]# useradd -s /sbin/nologin jerry
[root@localhost zko]# touch /home/{tom,jerry}/test.txt
[root@localhost zko]# getenforce
Permissive
[root@localhost zko]# setenforce 0
[root@localhost zko]# getenforce
Permissive
?
?
[root@localhost zko]# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[root@localhost zko]# service iptables status
iptables: Firewall is not running.
?
[root@localhost pub]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@localhost zko]# chkconfig vsftpd on
?
(2)打開瀏覽器輸入ftp://192.168.1.104,可訪問!!
?
6、以上方法只針對當前訪問FTP的用戶不多情況下,當用戶量變得越來越龐大時,可以創建虛擬賬戶:
?
方法如下:
?
(1) 創建虛擬用戶數據庫:
[root@localhost pub]# yum install -y db4-utils
?
[root@localhost pub]# vim /etc/vsftpd/vlogin
zkolove
123456
llm
123456
?
[root@localhost pub]# db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db
[root@localhost pub]# chmod 600 /etc/vsftpd/{vlogin,vlogin.db}
?
(2) 創建PAM文件,設置基于虛擬賬戶驗證:
?
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
?
(3) 設置虛擬賬戶共享目錄及測試文件:
?
[root@localhost pub]# useradd -s /sbin/nologin -d /home/ftp virtual
[root@localhost pub]# cp /etc/passwd /home/ftp/
?
(4)修改主配置文件:
?
[root@localhost pub]# cat /etc/vsftpd/vsftpd.conf | grep -v "#"
anonymous_enable=NO
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
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
listen_port=21
anon_other_write_enable=NO
guest_enable=YES
guest_username=virtual
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
pam_service_name=vsftpd.pam
user_config_dir=/etc/vsftpd_user_conf
user_sub_token=$USER
?
(5) 為每個用戶設置獨立共享路徑:
?
[root@localhost pub]# mkdir /etc/vsftpd_user_conf
[root@localhost pub]# mkdir -p /home/ftp/zkolove
[root@localhost pub]# vim /etc/vsftpd_user_conf/zkolove
?
local_root=/home/ftp/$USER
?
?
(6)打開瀏覽器輸入ftp://192.168.1.104,驗證用戶名與密碼,即可訪問!!
總結
以上是生活随笔為你收集整理的linux vsftpd 配置及使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。