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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vsFTPD编译安装使用实用手册

發(fā)布時間:2025/3/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vsFTPD编译安装使用实用手册 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實(shí)驗(yàn)環(huán)境:系統(tǒng) CENTOS5.5,用戶 root,軟件 vsftpd-2.3.4
實(shí)驗(yàn)以自行編安裝為基礎(chǔ),與通過yum方式安裝存在一些差異。

(lykyl原創(chuàng),轉(zhuǎn)載請注明出處)


一、編譯安裝
1、獲取并解壓縮源碼
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz /usr/local/src/
tar -xvzf /usr/local/src/vsftpd-2.3.4.tar.gz

2、系統(tǒng)環(huán)境設(shè)置
添加vsftpd的服務(wù)啟動用戶,只給最低權(quán)限且不允許登錄系統(tǒng)
useradd -g nobody -M -s /sbin/nologin nobody
添加基本空目錄,用于FTP用戶登錄后基本定位
mkdir /usr/share/empty

建立FTP的默認(rèn)目錄
mkdir /var/ftp/
添加FTP用戶的映射本機(jī)帳號,強(qiáng)制設(shè)定home目錄為/var/ftp,不允許登錄系統(tǒng)
useradd -d /var/ftp -s /sbin/nologin ftp
設(shè)定家目錄所有者以及默認(rèn)權(quán)限
chown root:root /var/ftp
chmod go-w /var/ftp

3、編譯設(shè)置是否支持TCP WRAPPERS和SSL
vi /usr/local/src/vsftp-d.2.3.4/builddefs.h
/*默認(rèn)值如下:*/
#undef VSF_BUILD_TCPWRAPPERS? /*是否支持TCP WRAPPERS*/
#define VSF_BUILD_PAM? /*是否支持自定義虛擬用戶登錄*/
#undef VSF_BUILD_SSL? /*是否支持SSL傳輸*/
/*支持則將對應(yīng)項(xiàng)設(shè)為define,否則設(shè)為undef,建議全部define*/

4、編譯部署
cd /usr/local/src/vsftp-d.2.3.4
make
make install
運(yùn)行后,系統(tǒng)會嘗試進(jìn)行以下操作:
cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
如果運(yùn)行中有cp報(bào)錯,可以手動將這些文件cp到對應(yīng)目錄。
需要注意的是,系統(tǒng)不會自動將vsftp.conf文件cp到/etc目錄,需要手動cp或直接vi生成。

二、虛擬用戶訪問設(shè)置
1、建立虛擬用戶(這里只介紹針對Berkeley DB建立虛擬用戶的方法)
A、安裝DB4組合工具(Berkeley DB)
yum install db4-utils

B、建立虛擬用戶名文本文件/tmp/logins.txt
格式為奇數(shù)行是用戶名,偶數(shù)行是對應(yīng)密碼,形式如下:
username1
password1
username2
password2

C、建立虛擬用戶庫文件
db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db
rm -f /tmp/logins.txt
chmod 600 /etc/vsftpd_login.db

D、在/var/ftp/目錄下為每個虛擬用戶建立FTP默認(rèn)根目錄。目錄名與用戶同名,并改變所有者為ftp,設(shè)置權(quán)限為700(此項(xiàng)不是必須要做,根據(jù)用戶自定義設(shè)置中l(wèi)ocal_root值而定)
mkdir /var/ftp/<username>
chown ftp:ftp /var/ftp/<username>
chmod 700 /var/ftp/<username>

E、獲取數(shù)據(jù)庫中用戶信息至文本文件
db_dump -da /etc/vsftpd_login.db | grep " data" |sed 's/^.*data: //g' >/tmp/logins.txt
*注意命令中的空格

三、vsftpd設(shè)置
1、編輯 /etc/vsftpd.conf
ftpd_banner=CentOS.Test1 FTP
connect_from_port_20=YES
listen=YES
background=YES
max_clients=20
max_login_fails=3
max_per_ip=3
pasv_min_port=50000
pasv_max_port=54500
#local_max_rate=200000??? #視具體情況決定是否限速
idle_session_timeout=700
data_connection_timeout=200
tcp_wrappers=YES
#-------------------------------------
guest_enable=YES
guest_username=ftp
local_enable=YES
chroot_local_user=YES
user_sub_token=$USER
#virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf.d
check_shell=NO
write_enable=NO
anonymous_enable=NO
anon_upload_enable=NO
anon_world_readable_only=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
dirlist_enable=NO
write_enable=NO
download_enable=NO
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd_allow_users
#-------------------------------------
use_localtime=YES
chown_uploads=YES
chown_username=ftp
dirmessage_enable=YES
pam_service_name=vsftp
anon_umask=027
local_umask=027
#-------------------------------------
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
#-------------------------------------
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/usr/share/ssl/certs/vsftpd.pem

2、生成SSL證書

openssl req -new -x509 -nodes -out /usr/share/ssl/certs/vsftpd.pem -keyout /usr/share/ssl/certs/vsftpd.pem

3、配置iptables
iptables -A INPUT -i eth0 -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 50000:54500 -j ACCEPT

4、添加允許訪問FTP的用戶
編輯/etc/vsftpd_allow_users,添加允許訪問FTP的用戶名,每行一個。注意,如果設(shè)定為虛擬用戶及本地用戶都可以訪問,則允許混合添加這兩類用戶名,只是要注意,不能重名。

四、vsftpd的pam模塊
1、虛擬用戶認(rèn)證
vi /etc/pam.d/vsftp
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

2、虛擬用戶及本地用戶認(rèn)證
vi /etc/pam.d/vsftp
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd_login
auth required /lib/security/pam_listfile.so item=user sense=allow file=/etc/vsftpd_allow_users onerr=fail
auth required /lib/security/pam_unix.so shadow nullok
auth required /lib/security/pam_shells.so
account required /lib/security/pam_unix.so
session required /lib/security/pam_unix.so

五、用戶個性化設(shè)置
在/etc/vsftpd_user_conf.d目錄下建立與用戶同名的文件,在其中設(shè)置每個帳號的具體權(quán)限。以下僅列出有代表性的幾個權(quán)限設(shè)置,更具體的設(shè)置請參考VSFTPD.CONF說明以及FTP協(xié)議常用命令。
1、所有權(quán)限
local_root=/var/ftp/$USER
write_enable=YES
dirlist_enable=YES
download_enable=YES
virtual_user_local_Privs=YES
cmds_allowed=ABOR,ACCT,ALLO,APPE,CDUP,CWD,DELE,HELP,LIST,MDTM,MODE,MKD,NLST,NOOP,PASS,PASV,PORT,PWD,QUIT,REIN,REST,RETR,RMD,RNFR,RNTO,SITE,SIZE,SMNT,STAT,STOR,STOU,STRU,SYST,TYPE,USER

2、只允許上傳
local_root=/var/ftp/$USER
write_enable=YES
dirlist_enable=YES
virtual_user_local_Privs=YES
cmds_allowed=ABOR,APPE,CDUP,CWD,HELP,LIST,MDTM,MODE,MKD,NLST,NOOP,PASS,PASV,PORT,PWD,QUIT,REIN,REST,RETR,SITE,SIZE,STAT,STOR,STOU,STRU,TYPE,USER

3、只允許下載
local_root=/var/ftp/$USER
write_enable=NO
dirlist_enable=YES
download_enable=YES
virtual_user_local_Privs=YES
cmds_allowed=ABOR,CDUP,CWD,HELP,LIST,MDTM,MODE,NLST,NOOP,PASS,PASV,PORT,PWD,QUIT,REIN,REST,RETR,SITE,SIZE,STAT,STRU,TYPE,USER

六、守護(hù)服務(wù)設(shè)置
1、超級守護(hù)進(jìn)程設(shè)置
確保/etc/vsftpd.conf中,listen=NO
編輯 /etc/xinet.d/vsftpd,內(nèi)容如下:
service ftp
{
??????? disable = no
??????? socket_type???????????? = stream
??????? wait??????????????????? = no
??????? user??????????????????? = root
??????? server????????????????? = /usr/local/sbin/vsftpd
??????? nice??????????????????? = 10
}

2、獨(dú)立啟動進(jìn)程
確保/etc/vsftpd.conf中,listen=YES,background=YES
編輯/etc/rc.d/rc.local,在文件最后插入下列內(nèi)容:
/usr/local/sbin/vsftpd

七、一些問題
?安裝DB4(Berkeley DB)后,每次啟動FTP都報(bào)下面的錯:
Please login with USER and PASS.
Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
!DB4安裝后會創(chuàng)建可執(zhí)行文件/usr/kerberos/bin/ftp。在未指定目錄的情況下運(yùn)行ftp,系統(tǒng)會優(yōu)先執(zhí)行/usr/kerberos/bin/ftp,因?yàn)檎J(rèn)證問題會報(bào)一些警告信息。可以使用絕對路徑來運(yùn)行系統(tǒng)默認(rèn)ftp程序
# which -a ftp
/usr/kerberos/bin/ftp
/usr/bin/ftp

?vsftpd啟動時報(bào)XX配置不正確
!確保vsftpd.conf中每一項(xiàng)設(shè)置的值前后都不能有空格。



?為什么按你的手冊配置后,有的文件下載、覆蓋或刪除會失敗
!下列條件至少要符合一條才能保證文件操作成功

1、文件所有者是ftp(vsftpd的映射帳號,虛擬用戶和本地用戶登錄后都會映射到此帳號)。

2、文件的other權(quán)限為rw。

轉(zhuǎn)載于:https://www.cnblogs.com/lykyl/archive/2011/03/20/1989709.html

總結(jié)

以上是生活随笔為你收集整理的vsFTPD编译安装使用实用手册的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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