vsftpd 安装与配置
第一步:安装
打开ftp://vsftpd.beasts.org/users/cevans/ 选择一个你需要的版本,我在这里选择了vsftpd-2.2.2.tar.gz
vsftpd下载
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.2.2.tar.gz
然后解压这个文件包:tar zxvf vsftpd-2.2.2.tar.gz
然后输入命令
cd vsftpd-2.2.2
make
我在这里遇到一个错误
gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o -Wl,-s `./vsf_findlibs.sh`
/lib/libcap.so.1: could not read symbols: File in wrong format
collect2: ld 返回 1
make: *** [vsftpd] 错误 1
打开vsf_findlibs.sh找到错误语句提示的地方然后修改
vim vsf_findlibs.sh
找到/lib/libcap.so.1 修改成 /lib64/libcap.so.1
make
make install
这里又出现2个错误
install: 无法创建一般文件“/usr/local/man/man8/vsftpd.8”: 没有那个文件或目录
install: 无法创建一般文件“/usr/local/man/man5/vsftpd.conf.5”: 没有那个文件或目录
不能自动创建就手动创建一下
mkdir /usr/local/man/man8
mkdir /usr/local/man/man5
make install
复制配置文件 vsftpd.conf 到 etc目录
cp /etc/vsftpd/vsftp.conf /etc/vsftpd.conf
然后运行vsftp
/usr/sbin/vsftpd&
现在用netstat -tnl 查看一下,有21端口说明已经安装成功
如果开启了匿名访问,FTP可以访问pub文件夹了
添加虚拟用户,我们要添加的用户是不能登陆系统,只能登陆FTP的帐号。
useradd –s /sbin/nologin -g ftp –d path username
passwd username
Changing password for user beinan.
New password: //在这里输入密码
Retype new password: //再次输入密码
passwd: all authentication tokens updated successfully.
说明:
-s /sbin/nologin 是让其不能登陆系统
-g ftp 方便管理我们需要建立一个FTP用户组,后面创建的FTP用户都放到FTP用户组中
-d path 是指定用户登陆FTP后进入的目录path
第二步:配置
现在去 /etc 目录可以看到关于vsftpd 的一些配置文件
vsftpd.conf
#是否允许匿名登陆
anonymous_enable=YES#是否接受本地用户
local_enable=YES#是否开放写入权限
write_enable=YES#本地用户新增档案的权限
local_umask=022#是否允许匿名用户上传文件
anon_upload_enable=YES#是否允许匿名用户创建新目录
anon_mkdir_write_enable=YES#控制是否启用目录提示信息功能,此功能启用后,当用户进入某一个目录时,会检查该目录下是否有message_file选项所指定的文档,若是有,则会出现此文档的内容,通常这个档案会放置欢迎话语,或是对该目录的说明.
dirmessage_enable=YES#是开启日志功能
xferlog_enable=YES#控制以PORT模式进行数据传输时是否使用20端口(ftp-data).
connect_from_port_20=YES#是否修改匿名用户所上传文件的所有权,用户由chown_username参数指定
chown_uploads=YES#拥有匿名用户上传文件所有权的用户.
chown_username=whoever#日志文件位置
xferlog_file=/var/log/vsftpd.log#日志文件是否使用xferlog的标准格式
xferlog_std_format=YES#空闲用户会话的超时时间,单位为秒.
idle_session_timeout=600#空闲的数据连接的超时时间.
data_connection_timeout=120#当服务器运行于最底层时使用的用户名
nopriv_user=ftpsecure#是否可以用async ABOR命令
async_abor_enable=YES#是否可以用ASCII 模式上传
ascii_upload_enable=YES#是否可以用ASCII 模式下载
ascii_download_enable=YES#登陆时显示欢迎信息.如果设置了banner_file则此设置无效
ftpd_banner=Welcome to blah FTP service.#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录
deny_email_enable=YES#禁止使用匿名用户登陆时作为密码的电子邮件地址
banned_email_file=/etc/vsftpd.banned_emails#将用户的HOME目录变为其FTP登录后的根目录
chroot_local_user=YES#chroot_list_file中的用户锁定在自家目录中.
chroot_list_enable=YES#定义锁定在自家目录的用户列表.
chroot_list_file=/etc/vsftpd.chroot_list#是否允许使用”ls -R” 指令
ls_recurse_enable=YES#控制standalone方式启动
listen=YES
vsftpd.ftpusers 和 vsftpd.user_list:
vsftpd.ftpusers中指定了哪些用户不能访问FTP服务器。vsftpd.user_list中指定的用户默认情况(即在vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器,当在vsftpd.conf中设置了userlist_deny=NO时,仅仅允许vsftpd.user_list中指定的用户访问FTP服务器。
vsftpd.chroot_list:
上面提到的vsftpd中设置了chroot_list_enable=YES 后就会用到这个文件,文件里面是不能更换根目录的用户列表。
POSTED ON 2010年06月7日,
评论总数:2
Leave my own