Linux-vsFTP

搭建Linux-VSFTP

Linux搭建vsftp。所謂vsftp,就是very secure FTP daemon。在Linux上搭建FTP,可以選擇proftpdpureftpd、和vsftpd等軟件。

在vsftp創建虛擬的ftp用戶。所謂虛擬用戶,就是不在系統中存在,而且在不同的虛擬用戶有不同的權限,例如UP用戶只能上傳,不能修改下載;DOWN用戶只能下載,不能上傳修改。

以紅帽企業版RHEL5爲例,搭建虛擬用戶的vsftp設置靜態IP地址。

安裝軟件:

      rpm -Uvh /media/cdrom/Server/vsftpd-2.0.5-10.el5.i386.rpm

Vsftp的配置文件在

    /etc/vsftpd/vsftpd.conf

我們可以複製一份配置文件作備份。因爲原文件太多#了,cat一個新配置文件去掉所有#

    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

    cat /etc/vsftpd/vsftpd.conf.bak | grep -v ^# >>/etc/vsftpd/vsftpd.conf

然後就可以修改了

    vim /etc/vsftpd/vsftpd.conf

    anonymous_enable=NO        //是否啓用匿名

    local_enable=YES           //是否本地用戶登陸

    write_enable=YES           //是否寫入權限(上傳,刪除等需開)

    local_umask=022            //本地用戶上傳文件默認權限掩碼值

    dirmessage_enable=YES      //用戶切換進入目錄時顯示

    xferlog_enable=YES         //啓用日誌

    connect_from_port_20=YES   //從20端口連接

    xferlog_std_format=YES     //標誌日誌格式

    listen=YES                 //監聽

    pam_service_name=vsftpd    //用戶認證PAM,位於/etc/pam.d/對應的文件

    userlist_enable=YES        //啓用userlist用戶列表

    tcp_wrappers=YES           //啓用TCP_Wrappers主機訪問控制。

啓用匿名訪問,則登陸時不需要用戶名密碼。

關閉匿名訪問,啓用userlist列表,則需要輸入userlist裏的用戶和相應密碼。

通常登陸ftp後,需要禁錮用戶在其登陸目錄下,否則將會亂竄其他目錄。在配置文件中添加一項:

    chroot_local_user=YES

如果只監聽一個地址,則修改配置文件:

    listen_address=192.168.1.1

    Listen_port=2121

使用FTP被動模式,則修改配置文件:

    pasv_enable=YES         //允許被動模式連接

    pase_mis_port=12306     //指定被動連接最小端口

    pasv_max_port=23061     //制定被動連接最大端口

限制FTP連接併發、傳輸速率等,則修改配置文件:

    max_clients=20           //限制併發客戶最大20

    max_per_ip=2             //限制每個IP最大連接2

    anan_max_rate=50000      //限制匿名傳輸率爲50kb/s

    local_max_rate=100000    //限制本地用戶傳輸率爲200kb/s

虛擬用戶的FTP服務。

建立虛擬用戶賬號數據庫。使用Berkeley DB格式的數據庫文件來存放虛擬用戶賬號。需要用到db_load工具,遊db4-utils軟件包提供。

    rpm -Uvh /media/cdrom/Server/db4-utils-4.3.29-9.fc6.i386.rpm 

建立用戶名密碼,單數行爲用戶,雙數行爲密碼!!

    vim /etc/vsftpd/vusers.list

    up

    up

    down

    down

保存退出

進入vsftp目錄並創建Berkeley DB格式數據庫文件。

    cd /etc/vsftpd/

    db_load -T -t hash -f vusers.list vusers.db

通過file vusers.db查看到如下內容:

    vusers.db: Berkeley DB (Hash, version 8, native byte-order)

修改賬號安全性,將文件權限改爲600

    chmod 600 /etc/vsftpd/vuser.*

添加虛擬用戶映射賬號,創建FTP根目錄:

    useradd -d /var/ftproot -s /sbin/nologin virtual

    chmod 755 /var/ftproot/

爲虛擬用戶建立PAM認證文件:

    vim /etc/pam.d/vsftpd.vu

    #%PAM-1.0

    auth    required        pam_userdb.so   db=/etc/vsftpd/vusers

    account required        pam_userdb.so   db=/etc/vsftpd/vusers

保存退出

爲不同虛擬用戶建立獨立的配置文件:

    mkdir /etc/vsftpd/vusers_dir

    mkdir /var/ftproot/up

確保上傳成功,修改up的權限

    chmod a+x /var/ftproot/up

    mkdir /var/ftproot/down

配置up用戶的信息

    vim /etc/vsftpd/vusers_dir/up

    local_root=/var/ftproot/up    //up用戶的ftp目錄

    anon_mkdir_write_enable=YES   //有寫入權限

    anon_upload_enable=YES        //有上傳權限

    download_enable=NO            //沒有下載權限

    anon_umask=022                //上傳後文件掩碼

保存退出

配置down用戶的信息

    vim /etc/vsftpd/vusers_dir/down

    local_root=/var/ftproot/down    //down用戶的ftp目錄

    download_enable=YES             //下載權限

保存退出

修改vsftp配置文件,添加虛擬用戶支持:

    vim /etc/vsftpd/vsftpd.conf


    .....    //

    anonymous_enable=NO           //關閉匿名登陸

    guest_enable=YES              //啓用用戶映射功能

    guest_username=virtual        //制定映射的系統用戶名

    pam_service_name=vsftpd.vu    //制定新的PAM認證文件

    user_config_dir=/etc/vsftpd/vusers_dir        //虛擬用戶配置文件

保存退出

啓動vsftpd服務

    service vsftpd start

如果訪問不到,則將防火牆、selinux都關閉掉。

    service iptables stop

    setenforce 0

驗證上傳下載:

up用戶登錄,並上傳。

wKiom1SuJqTwd7DkAAECBqVy8QA071.jpg

wKiom1SuJqTj1h-uAABGivt-vbg490.jpg

下載卻失敗

wKioL1SuJ2aRPZLqAABOZTpB5ME826.jpg

打開也失敗

wKiom1SuJqWD4EDGAABfSMB2nfE566.jpg

down用戶下載

wKioL1SuJ2fDs0UNAAA9vktCmCE374.jpg

wKiom1SuJqWj_lKHAABB2dhqD_E521.jpg

上傳卻失敗。

wKioL1SuJ2fy2BTQAACbXEZeLjE281.jpg

至此,up和down用戶僅存在數據庫中,並沒有真正存在系統裏的用戶。所以安全級別提高了,而且配置起來也簡單,可以隨心而欲,這就是VSFTP。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章