1. 程式人生 > >linux下VSFTPD的主動模式、被動模式和虛擬用戶登錄配置。

linux下VSFTPD的主動模式、被動模式和虛擬用戶登錄配置。

local ces -o 註意 linu lin guest 默認 connect

主動模式:
以CENTOS為例。
1、在 root 權限下,通過命令 yum install vsftpd 安裝 vsftp。
2、啟動 vsftpd 服務之前,需要登錄雲服務器修改配置文件,禁用匿名登錄。
使用 vim /etc/vsftpd/vsftpd.conf 打開配置文件,將配置文件中第 11 行的 anonymous_enable=YES 改為anonymous_enable=NO 即可禁用匿名登錄。
3、使用 cat /etc/vsftpd/vsftpd.conf |grep ^[^#] 命令讀取生效配置。
返回結果為:
                                    local_enable=YES
                                    write_enable=YES
                                    local_umask=022
                                    anon_upload_enable=YES
                                    anon_mkdir_write_enable=YES
                                    anon_umask=022
                                    dirmessage_enable=YES
                                    xferlog_enable=YES
                                    connect_from_port_20=YES
                                    xferlog_std_format=YES
                                    listen=YES
                                    pam_service_name=vsftpd
                                    userlist_enable=YES
                                    tcp_wrappers=YES

4、使用 service vsftpd start 命令啟動 vsftpd 服務。
5、設置 FTP 用戶帳號。

        1)、使用命令 useradd 設置FTP用戶賬號
        例如,設置賬號為ftpuser1,目錄為/home/ftpuser1,且設置不允許通過SSH登錄的命令為:
        useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1
        2)、使用命令 password 設置賬號對應的密碼
        例如,設置上述賬號密碼為 ftpuser1 的命令為:
        passwd ftpuser1
        設置成功後。即可通過該賬號及密碼鄧麗FTP服務器。

完成修改後,重啟vsftpd服務,使配置生效。
技術分享圖片

測試:客戶端使用FILEZILLA
技術分享圖片

*被動模式:

在vsftpd服務的配置文件下添加以下配置。
    pasv_enable=YES     #開啟被動模式
    pasv_min_port=20000  #設置被動模式傳輸數據的端口範圍
    pasv_max_port=20045  #設置被動模式傳輸數據的端口範圍
重啟vsftpd服務後再進行測試。

技術分享圖片

虛擬用戶登錄:

業務場景:

    公司內部現在有一臺WEB 服務器,其上的FTP的功能主要用於維護公司的web1 和web2網站內容,包括上傳文件、創建目錄、更新網頁等等。公司現有兩個部門負責維護任務,他們分別使用team1 和team2 虛擬用戶登陸進行管理。現要求僅允許team1 和team2 登錄FTP服務,但不能登錄本地系統,並將這兩個帳號的根目錄限制為/var/www/html,不能進入該目錄以外的任何目錄。
    只允許:team1和team2 虛擬用戶 可以上傳。 禁止匿名。

1、建立虛擬賬戶列表配置文件:vim /etc/vsftpd/virtusers
team1
123456
team2
123456
2、生成虛擬用戶數據文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db #設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀
3、在/etc/pam.d/vsftpd的文件頭部加入以下信息(在後面加入無效)
修改前先備份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak
恢復cp /etc/pam.d/vsftpdbak /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
4、新建一個系統用戶vsftpd,用戶家目錄為/var/www/
useradd vsftpd -d /var/www/html/ -s /bin/false #禁止登陸本地系統
5、建立虛擬用戶個人Vsftp的配置文件
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch team1 team2 #這裏創建二個虛擬用戶配置文件
################
vim team1 #編輯用戶team1配置文件
local_root=/var/www/html/web1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
################
vim team2 #編輯用戶team2配置文件
local_root=/var/www/html/web2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
6、最後重啟vsftpd服務器
systemctl,restart vsftpd #或者 /etc/init.d/vsftpd restart

備註:配置虛擬用戶登錄ftp服務器需要將/etc/vsftpd/vsftpd.conf添加以下內容:

以下這些是關於Vsftpd虛擬用戶支持的重要配置項目。
默認Vsftpd.conf中不包含這些設定項目,需要自己手動添加配置
#########################################################
guest_enable=YES     #設定啟用虛擬用戶功能。
guest_username=vsftpd     #指定虛擬用戶的宿主用戶(也可以指定虛擬用戶的宿主用戶為apache運行賬戶,可以避免很多權限設置問題)
user_config_dir=/etc/vsftpd/vconf     #設定虛擬用戶個人Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每個Vsftp虛擬用戶個性的配置文件,需要註意的地方就是這些配置文件名必須和虛擬用戶名相同。比如說vsftpd.conf的配置文件,你復制到這個目錄下,你要mv一下,配置成虛擬用戶的名稱。
virtual_use_local_privs=YES     #當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的權限。當此參數關閉(NO)時,虛擬用戶使用與匿名用戶相同的權限。默認情況下此參數是關閉的(NO)。
pasv_enable=YES         #設置開啟被動模式,可註釋
pasv_min_port=20000     #設置被動模式的端口範圍 ,可註釋
pasv_max_port=20045     #設置被動模式的端口範圍,可註釋
accept_timeout=5       #保持5秒
connect_timeout=10     #10秒後重新連接

linux下VSFTPD的主動模式、被動模式和虛擬用戶登錄配置。