佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 編譯安裝 vsFTP 3.0.3的詳細(xì)解析

編譯安裝 vsFTP 3.0.3的詳細(xì)解析

熱門標(biāo)簽:阿里云 使用U盤裝系統(tǒng) 網(wǎng)站建設(shè) 美圖手機(jī) 硅谷的囚徒呼叫中心 智能手機(jī) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 檢查注冊(cè)表項(xiàng)

漏洞詳情

VSFTP是一套基于GPL發(fā)布的類Unix系統(tǒng)上使用的FTP服務(wù)器軟件。該軟件支持虛擬用戶、支持兩種認(rèn)證方式(PAP或xinetd/tcp_wrappers)、支持帶寬限制等。

VSFTP中存在安全漏洞,該漏洞源于程序沒(méi)有正確處理‘deny_file'選項(xiàng)。遠(yuǎn)程攻擊者可利用該漏洞繞過(guò)訪問(wèn)限制。

以下產(chǎn)品及版本受到影響:VSFTP3.0.2及之前版本,opensuse13.1版本和13.2版本。

受影響的產(chǎn)品

Vsftpd Vsftpd 3.0.2

  • FTP的登錄一般有三種方式,分別是:
  • 匿名用戶形式:默認(rèn)安裝的情況下,系統(tǒng)只提供匿名用戶訪問(wèn),只需要輸入用戶anonymous/ftp,并將自己的Email作為口令即可登錄。
  • 本地用戶形式:以/etc/passwd中的用戶名為認(rèn)證方式。
  • 虛擬用戶形式:支持將用戶名和密碼保存在文件或數(shù)據(jù)庫(kù)中,將登錄用戶映射到指定的系統(tǒng)賬號(hào)(/sbin/nologin)來(lái)訪問(wèn)資源,其中這些虛擬用戶是FTP的用戶。
  • 實(shí)驗(yàn)環(huán)境: CentOS 7.5 192.168.2.3
  • firewalld、iptables 及 SElinux 均為關(guān)閉狀態(tài)
  • 下面實(shí)驗(yàn)采用基于PAM的虛擬用戶,需要先用yum來(lái)安裝PAM的組件:
  • 需要使用 epel 源 
  • yum -y install epel-release && yum -y install pam pam-devel db4-utils
  • 在默認(rèn)配置下 vsftpd 需要使用 nobody 用戶
  • 從官網(wǎng)上下載 https://www.linuxfromscratch.org/blfs/view/svn/server/vsftpd.html
  • wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz
  • tar xf vsftpd-3.0.3.tar.gz
  • cd vsftpd-3.0.3/

  • vsftpd的源碼包里并沒(méi)有configure文件,直接編譯安裝
  • make clean && make -j 4 && make install 
  • 如果編譯的時(shí)候報(bào)錯(cuò)
  • /usr/bin/ld: cannot find -lcap
  • 查找該 .so 文件
  • find / -name "*libcap.so*"
  • /usr/lib64/libcap.so.2.22
  • /usr/lib64/libcap.so.2
  • ln -sv /usr/lib64/libcap.so.2 /usr/lib64/libcap.so

  • 默認(rèn)配置: 
  • 默認(rèn)配置: 
  • 主程序文件:/usr/local/sbin/vsftpd
  • 主配置文件:/etc/vsfptd.conf
  • PAM認(rèn)證文件:/etc/pam.d/vsftpd
  • 匿名用戶主目錄:/var/ftp
  • 匿名用戶的下載目錄:/var/ftp/pub
  •  
  • vsftpd的安全原則主要有兩個(gè):
  • 只允許支持虛擬用戶登錄,關(guān)閉本地用戶和匿名用戶。
  • 不允許使用root權(quán)限運(yùn)行。
  •  
  • 創(chuàng)建配置文件存放目錄
  • mkdir /etc/vsftpd
  • 拷貝新的配置文件到 /etc/vsftpd 目錄

創(chuàng)建用戶以及共享目錄、目錄權(quán)限

  • 創(chuàng)建虛擬用戶口令明文文件,使用前面安裝的db4-utils組件生成口令認(rèn)證文件:
  •  vim /etc/vsftpd/access.txt

zhangsan   #用戶名
123456      #密碼
lisi
123456使用

  • 前面安裝的db4-utils組件生成口令認(rèn)證文件:
  • db_load -T -t hash -f /etc/vsftpd/access.txt /etc/vsftpd/access.db

  • 編輯vsftpd的PAM認(rèn)證文件:
  • vim /etc/pam.d/vsftpd

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/access
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/access

  • 編輯配置主文件 /etc/vsftpd/vsftpd.conf
  • cp /etc/vsftpd/vsftpd.conf{,.bak}
  • vim /etc/vsftpd/vsftpd.conf
  • #禁止匿名用戶
anonymous_enable=NO
local_enable=YES
write_enable=YES

#不啟動(dòng)鎖定用戶名單,所有的用戶都將被鎖定不允許訪問(wèn)上級(jí)目錄,只允許訪問(wèn)其主目錄
chroot_local_user=YES
chroot_list_enable=NO

#啟動(dòng)log
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/etc/vsftpd/vsftpd.log

#開(kāi)啟虛擬用戶
guest_enable=YES
#FTP虛擬用戶對(duì)應(yīng)的系統(tǒng)用戶
guest_username=vsftpd
#PAM認(rèn)證文件/etc/pam.d/vsftpd
pam_service_name=vsftpd

virtual_use_local_privs=YES

編寫 vsftpd 啟動(dòng) 腳本:/etc/init.d/vsftpd                                                                                                       

#!/bin/bash
#
# vsftpd      This shell script takes care of starting and stopping
#             standalone vsftpd.
#
# chkconfig: - 60 50
# description: Vsftpd is a ftp daemon, which is the program
#              that answers incoming ftp service requests.
# processname: vsftpd
# config: /etc/vsftpd/vsftpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x /usr/local/sbin/vsftpd ] || exit 0
RETVAL=0
prog="vsftpd"
start() {
        # Start daemons.
        if [ -d /etc/vsftpd ] ; then
                for i in `ls /etc/vsftpd/*.conf`; do
                        site=`basename $i .conf`
                        echo -n $"Starting $prog for $site: "
                        /usr/local/sbin/vsftpd $i &
                        RETVAL=$?
                        [ $RETVAL -eq 0 ] && {
                           touch /var/lock/subsys/$prog
                           success $"$prog $site"
                        }
                        echo
                done
        else
                RETVAL=1
        fi
        return $RETVAL
}
stop() {
        # Stop daemons.
        echo -n $"Shutting down $prog: "
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        return $RETVAL
}
# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
            stop
            start
            RETVAL=$?
        fi
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 1
esac
exit $RETVAL

增加執(zhí)行權(quán)限

  • 修改文件 /etc/xinetd.d/vsftpd ,不使用 xinetd 守護(hù)進(jìn)程啟動(dòng) vsftpd
  • sed -in 's/disable.*=.*/disable = yes/g' /etc/xinetd.d/vsftpd
  • sed -in 's/disable.*=.*/disable = yes/g' /etc/xinetd.d/vsftpdn

  • 啟動(dòng) vsftpd
  • servicevsftpd start

登陸測(cè)試

  • 開(kāi)機(jī)啟動(dòng),重啟測(cè)試
  • chkconfig vsftpd on

以上就是編譯安裝 vsFTP 3.0.3的詳細(xì)內(nèi)容,更多關(guān)于編譯安裝 vsFTP 3.0.3的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

標(biāo)簽:黃山 湖北 山南 通遼 煙臺(tái) 賀州 湘潭 懷化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《編譯安裝 vsFTP 3.0.3的詳細(xì)解析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    星座| 峨眉山市| 天峨县| 安宁市| 保亭| 凤城市| 阜南县| 浏阳市| 慈利县| 惠来县| 英德市| 衡水市| 峨边| 山东| 皋兰县| 鹤庆县| 漳州市| 湾仔区| 沂南县| 新竹市| 和林格尔县| 泰州市| 陆河县| 西乌| 丹东市| 四川省| 汉沽区| 沙湾县| 武汉市| 安溪县| 调兵山市| 额尔古纳市| 汨罗市| 泰宁县| 托克逊县| 鱼台县| 吴旗县| 通道| 瓦房店市| 时尚| 精河县|