日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux下配置vsftpd虚拟用户为登录用户

發(fā)布時(shí)間:2024/4/14 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下配置vsftpd虚拟用户为登录用户 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.安裝vsftpd

安裝依賴包:
  • yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl
  • 新建vsftpd系統(tǒng)用戶:
  • #建立Vsftpd服務(wù)的宿主用戶
  • useradd vsftpd -M -s /sbin/nologin
  • #建立Vsftpd虛擬宿主用戶
  • useradd ftpvload -M -s /sbin/nologin
  • 安裝vsftpd
  • yum -y install vsftpd
  • 2.配置vsftpd

  • cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
  • 2.1 修改vsftpd.conf配置文件

    主要是下面的一些配置:
  • anonymous_enable=NO
  • #設(shè)定不允許匿名訪問(wèn)
  • local_enable=YES
  • #設(shè)定本地用戶可以訪問(wèn)。注意:主要是為虛擬宿主用戶,如果該項(xiàng)目設(shè)定為NO那么所有虛擬用戶將無(wú)法訪問(wèn)。
  • write_enable=YES
  • #設(shè)定可以進(jìn)行寫(xiě)操作。
  • local_umask=022
  • #設(shè)定上傳后文件的權(quán)限掩碼。
  • anon_upload_enable=NO
  • #禁止匿名用戶上傳。
  • anon_mkdir_write_enable=NO
  • #禁止匿名用戶建立目錄。
  • dirmessage_enable=YES
  • #設(shè)定開(kāi)啟目錄標(biāo)語(yǔ)功能。
  • xferlog_enable=YES
  • #設(shè)定開(kāi)啟日志記錄功能。
  • connect_from_port_20=YES
  • #設(shè)定端口20進(jìn)行數(shù)據(jù)連接。
  • chown_uploads=NO
  • #設(shè)定禁止上傳文件更改宿主。
  • xferlog_file=/var/log/vsftpd.log
  • #設(shè)定Vsftpd的服務(wù)日志保存路徑。注意,該文件默認(rèn)不存在。必須要手動(dòng)touch出來(lái),并且由于這里更改了Vsftpd的服務(wù)宿主用戶為手動(dòng)建立的Vsftpd。必須注意給與該用戶對(duì)日志的寫(xiě)入權(quán)限,否則服務(wù)將啟動(dòng)失敗。
  • xferlog_std_format=YES
  • #設(shè)定日志使用標(biāo)準(zhǔn)的記錄格式。
  • async_abor_enable=YES
  • #設(shè)定支持異步傳輸功能。
  • ascii_upload_enable=YES
  • ascii_download_enable=YES
  • #設(shè)定支持ASCII模式的上傳和下載功能。
  • ftpd_banner=This Vsftp server supports virtual users ^_^
  • #設(shè)定Vsftpd的登陸標(biāo)語(yǔ)。
  • chroot_list_enable=NO
  • #禁止用戶登出自己的FTP主目錄。
  • ls_recurse_enable=NO
  • #禁止用戶登陸FTP后使用"ls -R"的命令。該命令會(huì)對(duì)服務(wù)器性能造成巨大開(kāi)銷。如果該項(xiàng)被允許,那么當(dāng)多用戶同時(shí)使用該命令時(shí)將會(huì)對(duì)該服務(wù)器造成威脅。
  • listen=YES
  • #設(shè)定該Vsftpd服務(wù)工作在StandAlone模式下。
  • pam_service_name=vsftpd #設(shè)定PAM服務(wù)下Vsftpd的驗(yàn)證配置文件名。因此,PAM驗(yàn)證將參考/etc/pam.d/下的vsftpd文件配置。
  • userlist_enable=YES
  • #設(shè)定userlist_file中的用戶將不得使用FTP。
  • tcp_wrappers=YES
  • #設(shè)定支持TCP Wrappers
  • #以下這些是關(guān)于Vsftpd虛擬用戶支持的重要配置項(xiàng)目。默認(rèn)Vsftpd.conf中不包含這些設(shè)定項(xiàng)目,需要自己手動(dòng)添加配置
  • guest_enable=YES
  • #設(shè)定啟用虛擬用戶功能。
  • guest_username=ftpvload
  • #指定虛擬用戶的宿主用戶。
  • virtual_use_local_privs=YES
  • #設(shè)定虛擬用戶的權(quán)限符合他們的宿主用戶。
  • user_config_dir=/etc/vsftpd/vconf
  • #設(shè)定虛擬用戶個(gè)人Vsftp的配置文件存放路徑。也就是說(shuō),這個(gè)被指定的目錄里,將存放每個(gè)Vsftp虛擬用戶個(gè)性的配置文件,一個(gè)需要注意的地方就是這些配置文件名必須和虛擬用戶名相同。
  • 建立Vsftpd的日志文件,并更該屬主為Vsftpd的服務(wù)宿主用戶:
  • touch /var/log/vsftpd.log
  • chown vsftpd.vsftpd /var/log/vsftpd.log
  • 2.2 虛擬用戶配置

    創(chuàng)建虛擬用戶配置文件存放路徑
  • mkdir /etc/vsftpd/vconf/ -pv
  • 制作虛擬用戶數(shù)據(jù)庫(kù)文件
  • touch /etc/vsftpd/virtusers
  • 新建一個(gè)測(cè)試用虛擬用戶
  • vim /etc/vsftpd/virtusers
  • 編輯這個(gè)虛擬用戶名單文件,在其中加入用戶的用戶名和口令信息。格式很簡(jiǎn)單:“奇數(shù)行用戶名,偶數(shù)行口令”。virtusers文件格式如下:
  • test #用戶名
  • test1234 #用戶密碼
  • 生成虛擬用戶數(shù)據(jù)文件:
  • db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
  • 需要特別注意的是,以后再要添加虛擬用戶的時(shí)候,只需要按照“一行用戶名,一行口令”的格式將新用戶名和口令添加進(jìn)虛擬用戶名單文件。但是光這樣做還不夠,這樣是不會(huì)生效的!還要再執(zhí)行一遍“ db_load -T -t hash -f 虛擬用戶名單文件 虛擬用戶數(shù)據(jù)庫(kù)文件.db ”的命令使其生效才可以!

    2.3 設(shè)置認(rèn)證文件PAM

    在編輯前做好備份:
  • cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
  • 編輯Vsftpd的PAM驗(yàn)證配置文件,把原來(lái)的配置文件全部注釋掉(不注釋掉虛擬用戶會(huì)登錄不上),添加如下行
  • #vim /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
  • #以上兩條是手動(dòng)添加的,內(nèi)容是對(duì)虛擬用戶的安全和帳戶權(quán)限進(jìn)行驗(yàn)證。這里的auth是指對(duì)用戶的用戶名口令進(jìn)行驗(yàn)證。這里的accout是指對(duì)用戶的帳戶有哪些權(quán)限哪些限制進(jìn)行驗(yàn)證。其后的sufficient表示充分條件,也就是說(shuō),一旦在這里通過(guò)了驗(yàn)證,那么也就不用經(jīng)過(guò)下面剩下的驗(yàn)證步驟了。相反,如果沒(méi)有通過(guò)的話,也不會(huì)被系統(tǒng)立即擋之門(mén)外,因?yàn)閟ufficient的失敗不決定整個(gè)驗(yàn)證的失敗,意味著用戶還必須將經(jīng)歷剩下來(lái)的驗(yàn)證審核。再后面的/lib/security/pam_userdb.so表示該條審核將調(diào)用pam_userdb.so這個(gè)庫(kù)函數(shù)進(jìn)行。最后的db=/etc/vsftpd/virtusers則指定了驗(yàn)證庫(kù)函數(shù)將到這個(gè)指定的數(shù)據(jù)庫(kù)中調(diào)用數(shù)據(jù)進(jìn)行驗(yàn)證。

    2.4 虛擬用戶配置

    規(guī)劃好虛擬用戶的主路徑:
  • mkdir /var/ftp/virtual
  • 建立測(cè)試用戶的FTP用戶目錄:
  • mkdir /var/ftp/virtual/test1
  • 更改虛擬用戶的主目錄的屬主為虛擬宿主用戶:
  • chown -R ftpvload.ftpvload /var/ftp/virtual/
  • 建立虛擬用戶配置文件模版:
  • vi /etc/vsftpd/vconf/vconf.tmp
  • vconf.tmp內(nèi)容如下:
  • local_root=/var/ftp/virtual/test1
  • #指定虛擬用戶的具體主路徑
  • anonymous_enable=NO
  • #設(shè)定不允許匿名用戶訪問(wèn)
  • write_enable=YES
  • #設(shè)定允許寫(xiě)操作
  • local_umask=022
  • #設(shè)定上傳文件權(quán)限掩碼
  • anon_upload_enable=NO
  • #設(shè)定不允許匿名用戶上傳
  • anon_mkdir_write_enable=NO
  • #設(shè)定不允許匿名用戶建立目錄
  • idle_session_timeout=600
  • #設(shè)定空閑連接超時(shí)時(shí)間
  • data_connection_timeout=120
  • #設(shè)定單次連續(xù)傳輸最大時(shí)間
  • max_clients=10
  • #設(shè)定并發(fā)客戶端訪問(wèn)個(gè)數(shù)
  • max_per_ip=5
  • #設(shè)定單個(gè)客戶端的最大線程數(shù),這個(gè)配置主要來(lái)照顧Flashget、迅雷等多線程下載軟件
  • local_max_rate=50000
  • #設(shè)定該用戶的最大傳輸速率,單位b/s
  • 測(cè)試用戶復(fù)制配置模板
  • cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/test
  • vim?/etc/vsftpd/vconf/test
  • 3.測(cè)試配置

    使用ftp連接之后,測(cè)試情況如下

    4.自動(dòng)腳本

    4.1 自動(dòng)安裝配置

  • #!/bin/bash
  • #date:2017-05-25
  • #version:0.0.1
  • #開(kāi)始安裝vsftpd
  • echo ">>> 1. Start install Vsftpd ......"
  • yum -y install pam pam-devel db4 de4-devel db4-tcl vsftpd
  • mkdir /var/ftp/virtual
  • useradd vsftpd -M -s /sbin/nologin
  • useradd ftpvload -d /var/ftp/virtual/ -s /sbin/nologin
  • sleep 3
  • #開(kāi)始配置vsftpd
  • echo ">>> 2. Start config Vsftpd ......"
  • cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
  • sed -i '/^[^#]/s/^/#/g' vsftpd.conf
  • echo "
  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • local_umask=022
  • anon_upload_enable=NO
  • anon_mkdir_write_enable=NO
  • dirmessage_enable=YES
  • xferlog_enable=YES
  • connect_from_port_20=YES
  • chown_uploads=NO
  • xferlog_file=/var/log/vsftpd.log
  • xferlog_std_format=YES
  • async_abor_enable=YES
  • ascii_upload_enable=YES
  • ascii_download_enable=YES
  • ftpd_banner=Welcome to FTP Server
  • chroot_local_user=YES
  • ls_recurse_enable=NO
  • listen=YES
  • hide_ids=YES
  • pam_service_name=vsftpd
  • userlist_enable=YES
  • tcp_wrappers=YES
  • guest_enable=YES
  • guest_username=ftpvload
  • virtual_use_local_privs=YES
  • user_config_dir=/etc/vsftpd/vconf
  • " >> /etc/vsftpd/vsftpd.conf
  • cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
  • sed -i s/^/#/g /etc/pam.d/vsftpd
  • echo "auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
  • account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
  • " >> /etc/pam.d/vsftpd
  • sleep 3
  • #開(kāi)始配置其它
  • echo ">>> 3. Start config other ......"
  • touch /var/log/vsftpd.log
  • chown vsftpd.vsftpd /var/log/vsftpd.log
  • mkdir /etc/vsftpd/vconf/ -pv
  • sleep 3
  • #配置虛擬用戶
  • echo ">>> 4. Start config vitual user"
  • echo -e "test\ntest1234" >> /etc/vsftpd/virtusers
  • db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
  • mkdir /var/ftp/virtual/test
  • echo "local_root=/var/ftp/virtual/username
  • #指定虛擬用戶的具體主路徑
  • anonymous_enable=NO
  • #設(shè)定不允許匿名用戶訪問(wèn)
  • write_enable=YES
  • #設(shè)定允許寫(xiě)操作
  • local_umask=022
  • #設(shè)定上傳文件權(quán)限掩碼
  • anon_upload_enable=NO
  • #設(shè)定不允許匿名用戶上傳
  • anon_mkdir_write_enable=NO
  • #設(shè)定不允許匿名用戶建立目錄
  • idle_session_timeout=600
  • #設(shè)定空閑連接超時(shí)時(shí)間
  • data_connection_timeout=120
  • #設(shè)定單次連續(xù)傳輸最大時(shí)間
  • max_clients=10
  • #設(shè)定并發(fā)客戶端訪問(wèn)個(gè)數(shù)
  • max_per_ip=5
  • #設(shè)定單個(gè)客戶端的最大線程數(shù),這個(gè)配置主要來(lái)照顧Flashget、迅雷等多線程下載軟件
  • local_max_rate=50000
  • #設(shè)定該用戶的最大傳輸速率,單位b/s
  • " >> /etc/vsftpd/vconf/vconf.tmp
  • cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/test
  • sed -i s/username/test/g /etc/vsftpd/vconf/test
  • echo "Alll OVER! "
  • 4.2 新增用戶

  • #!/bin/bash
  • #date:2017-05-25
  • if read -t 5 -p "Please enter you name: " username
  • then
  • if [ -f /etc/vsftpd/vconf/$username ] #判斷用戶是否存在
  • then
  • echo "The $username is exists, please input another name."
  • else
  • read -s -p "Please enter your password: " passwd
  • echo -e "$username\n$passwd" >> /etc/vsftpd/virtusers
  • db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
  • mkdir -pv /var/ftp/virtual/$username
  • cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/$username
  • sed -i s/username/$username/g /etc/vsftpd/vconf/$username
  • echo "The config is over."
  • fi
  • else
  • echo -e "\nThe 5s has passed, you are to slow! "
  • fi
  • 4.3 刪除用戶

    轉(zhuǎn)載于:https://www.cnblogs.com/zhangpf/articles/6922476.html

    總結(jié)

    以上是生活随笔為你收集整理的linux下配置vsftpd虚拟用户为登录用户的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。