from UbuntuChina

Q:请问VSFTP与MYSQL结合,用MYSQL增加与管理访问虚拟的用户,配置过程应如何操作?
A:主要配置如下:
1.设置VSFTPd配置文件
在vsftpd.conf文件中,加入以下选项:
guest_enable=YES
guest_username=vuser
修改的pam_service_name=ftp
2.mysqladmin -u root password 'passw0rd'
mysql -u root -p'passw0rd'
mysql>create database vuser;
mysql>use vuser;
mysql>create table users(name char(16) binary,passwd char(16) binary);
mysql>quit
3.设置MySQL的PAM验证
mysql进行pam验证的开源项目(http://sourceforge.net/projects/pam-mysql/)。首先从网站下载它的程序包pam_myql-0.5.tar.gz,复制到/root目录中。在编译安装之前,要确保mysql-devel的RPM包已经安装在你的机器上,如果没有请从RHL安装光盘中安装该包。然后,执行以下命令:
[root@hpe45 root]#tar xvzf pam_mysql-0.5.tar.gz
[root@hpe45 root]#cd pam_mysql
[root@hpe45 pam_mysql]#make
[root@hpe45 pam_mysql]#make install
make install这一步可能会出现错误,那只好手动将该目录下生成的pam_mysql.so复制到/lib/security目录下。
接下来,我们要设置VSFTPd的PAM验证文件。打开/etc/pam.d/ftp文件,加入以下内容:
auth required pam_mysql.so user=root passwd=passw0rd host=localhost db=vuser table=users
usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.so user=root passwd=passw0rd host=localhost db=vuser
table=users usercolumn=name passwdcolumn=passwd crypt=2
上面涉及到的参数,只要对应前面数据库的设置就可以明白它们的含义。这里需要说明的是crypt参数。crypt表示口令字段中口令的加密方 式:crypt=0,口令以明文方式(不加密)保存在数据库中;crypt=1,口令使用UNIX系统的DES加密方式加密后保存在数据库 中;crypt=2,口令经过MySQL的password()函数加密后保存。
5.其余配置可以和虚拟用户配置一样,就是使用pam-mysql来进行虚拟用户的用户添加。比较简单。
Q:老师好!我在使用service vsftpd stop命令时无法关闭ftp服务,显示如下信息:
Shutting down vsftpd: [FAILED]
查看状态信息如下:
# service vsftpd status
vsftpd dead but subsys locked
请问应该如何解决?
问题补充:删除文件/var/lock/subsys/vsftpd 能把服务停止,但是再次启动vsftpd服务后的状态还是:vsftpd dead but subsys locked
A:首先用命令netstat -tlunp|grep 21检查有没有其他的FTP SERVER工作,结果如下:
再看grep -i ftp /etc/xinetd.d/*结果如下:
修改/etc/xinetd.d/gssftp这个文件,disable = no改成disable = yes。然后,重启xinetd,service xinetd restart,再重启动vsftpd, service vsftpd restart
Q:两位专家:如何设置vsftpd使之可以将特定用户限制在特定的目录内?
A:方法1:adduser -d 目录 用户名 ,在/etc/vsftpd/vsftpd.conf中加入chroot_local_user=YES (禁锢所有用户的/目录为属主目录)。
方法2: adduser -d 目录 用户名 修改/etc/vsftpd/vsftpd.conf中的chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list(vsftpd.chroot_list文件内写入的用户就限禁锢用户的/目录为属主目录),vi /etc/vsftpd.chroot_list加入你要限制的用户的用户名称即可。
Q:专家好!我新增一位使用者 test 加目录 test 。使用cuteftp可以连上,也可以上传及下载文档,但是对 /var/ftp/pub反而是可以下载却无法上传,此folder权限设为777. 我使用RPM裝FC5中的VSFTP 。谢谢专家了!
A:修改vsftpd.conf,匿名用户创建文件 anon_upload_enable=YES ,匿名用户创建目录anon_mkdir_write_enable=YES,是否允许匿名用户登录后执行其他操作(删除重命名 等)anon_other_write_enable=YES
注意:/var/ftp不能出现other为w,否则ftp匿名无法登陆。
Q:我想请问专家:在vsftpd中怎么限制IP地址。比如只要某个IP或IP段访问我的FTP,应该怎么配置,是在vsftp.conf中配置还是另外哪个配置文件里?请专家帮我一下。
A:使用Vsftpd+tcp_wrappers控制主机和用户访问tcp-wrappers的执行顺序:
先执行hosts.allow,如果hosts.allow里面有名单,则允许名单内的机子访问;否则,则向下寻找hosts.deny,如果 hosts.deny里面有名单,则拒绝名单内的机子访问,如果也没有(即allow和deny里面都没有名单)则允许该主机访问。在主机 (192.168.1.102)上配置vsftpd服务,使得除了192.168.1.100以外允许192.168.1.0/24网段的其他主机访问此 FTP服务。
编辑/etc/hosts.allow
vsftpd:192.168.1.100 DENY
vsftpd:192.168.1.
重启vsftpd,可达到目的

编辑/etc/hosts.deny
vsftpd:192.168.1.100
编辑/etc/hosts.allow
vsftpd:192.168.1.
Q:宋老师,王老师:
linux配置vsftpd服务,配好之后root无法登陆。本地测试显示如下:
[root@viv ~]# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): root
530 Permission denied.
Login failed.
远程登陆同样报错:
530 Permission denied.
Login failed.
还有一个问题:为什么我的本地账户都无法登陆了,均显示错误:530 login incorrect。希望老师帮帮忙,谢谢啦!
A:root用户默认是被禁止登陆vsftpd的服务器的。方法1.去掉/etc/vsftpd.ftpusers里面的root用户。修改 vsftpd.conf里面userlist_enable=YES,userlist_deny=NO,重启服务即可。方法2.去掉/etc /vsftpd.ftpusers里面的root用户。去掉/etc/vsftpd.user_list里面的root用户。登录即可。
Q:老师,在做vsftp的时候,为什么一定要关了selinux,设置成disabled,除了不设置,还有其他的办法吗?还有关于selinux能不能详细的说一下呢? 谢谢了!
附:setsebool -P ftp_home_dir 1 这个命令就可以不用关了selinux了么?
A:这常常是因为SELinux不允许vsftpd线程访问用户主目录造成的。解决方法为:
使用root用户登录,然后执行以下命令来赋予权限:
setsebool -P ftp_home_dir 1
然后重启vsftpd服务:
service vsftpd restart
使用用户登录即可
SELinux(Security-EnhancedLinux) 是美国国家安全局(NAS)对于强制访问控制的实现,是Linux上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在 这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。说下概念吧。SELinux牵扯的东西很多。这次不详细说了,什么时候可以做个 SELinux的门诊再说。
Q:我不想让vsftp默认路径是 pub,怎么让默认路径改为根目录 / ?最好能指导我怎么修改配置文件的办法。vsftpd.conf中间有句话chroot_list_file=/etc/vsftpd.chroot_list是不是修改这个?谢谢老师了!
A:在vsftpd.conf中加anon_root=/var/www,另外检查下权限然后 重起 vsftpd
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list (vsftpd.chroot_list文件内写入的用户就禁锢用户的/目录为属主目录)
Q:感觉VSFTP配置起来还是挺简单的,再深入一点不知道还能实现什么功能?
A:vsftpd大家用的也只是平常的东西,深入功能很多的:
1.证书支持
2.虚拟用户和数据库的结合实现数万及更多用户访问及统计等
3.用户详细权限设置
4.支持大量数据访问的调优
5.数据流量的控制
Q:请问老师vsftp在配置过程中如何能做到:
1、只能上传。不能下载、删除、重命名。
2、只能下载。不能上传、删除、重命名。
3、只能上传、删除、重命名。不能下载。
4、只能下载、删除、重命名。不能上传。
以下是我关于这四个问题的文章,请老师指点:http://xudeqiang.blog.51cto.com/224075/170040
A:你只写了办法挺独到的,其实用虚拟用户来做比较常用一些。那样更加好控制用户
Q:VSFTP需要的硬件配置如何?和Windows server 2003的文件服务器来说,两者的优点分别是?
A: 王老师:vsftpd根据linux所使用的版本来定的。最低要求cpu66Hz以上,内存16M以上就可以了。windows文件服务器比较适合于局域 网内部使用,ftp服务对interne和局域网内使用都可以,而且ftp比windows文件服务器有更多的控制,比如每用户流量限制等
A:宋老师:主要是看你的应用,vsftp灵活性强,所以在局域网环境和互联网中都可以应用。换句话说:看你的用户数量和使用场景来选择物理服务器的配 置,ftp服务关心的硬件只有三个CPU(处理效率)、内存(增加ftp业务的应付处理性能)、硬盘(存储空间),最低配置王老师已经给了,我省了嘎嘎。 高配服务器,建议不要配置太大的内存,多了反而浪费。我重点说说应用场景好了:
windows server 2003的文件服务器主要应用场景是小型局域网(广播域越小,效率越高),他是基于SMB实现的,通过端口445实现数据连接。在局域网内20台以下PC 的应用场景中是比较可观的,但,PC一旦过多就会大大降低应用效率,因为SMB的数据连接是采用广播定位服务器的方式工作的,我们很熟悉的netbios 协议就是这样通过139端口定位服务器的。所以局域网内PC越多(主要是对文件服务器的访问越频繁)广播就越多,从而应用效率降低。(补充:也有的公司, 使用×××在互联网访问远程分支机构的文件服务器,这样的应用也是可以的。)而ftp则是单播实现的,所以对局域内通讯没有太大的影响。而且在pc台数过 多的情况下可以正常应付大量的业务访问。所以在比较大规模的企业应用场景,多选择FTP作为实现文件服务的手段,而兼高效、廉价、安全、易管理配置于一身 的VSFTP就更适合了。互联网就更不用说了。很多软件公司checkin的时候都是使用FTP+安全验证机制来实现的。
Q:vsftp 客户端是win xp,如何解决客户端乱码问题?
A: 修改linux编码为xp的编码就好了,方法如下
1.修改/etc/sysconfig/i18n内容为
LANG="zh_CN.GB2312"
SUPPORTED="zh_CN.GB2312"
2.执行
export LANG=zh_CN.GB2312
export LC_ALL=zh_CN.GB2312
Q:老师您好,我想请教一下,我前两天做了个试验,通过机器A的VMWARE进行虚拟Linux,开启 SAMBA和VSFTP,然后又在机器B的VMWARE上光盘BOOT启动linuxaskmethod,通过FTP方式安装,总是无法安装成功。但在机 器C直接安装就没有问题,并且在B/C机器上测试FTP功能也正常。不知道是不是FTP不支持双VMWARE呢还是有其他的原因,麻烦老师了! 注:SAMBA和VSFTP的设置都是最基础的那种,没有权限,允许匿名登陆也可以实体登陆。
A:你最好检查一下你的vmware的B到A的网络配置,要是服务器有问题,C是无法安装的。
Q:老师好,我想问的是VSFTP的权限问题,怎么限制用户具体上传文件的大小,怎么限制根据下载上传的次数,适当的给予一定的权限的提升?谢谢老师!
A:解答第一个问题:用户上传的文件大小和空间存放大小可以使用Quota进行处理。解答第二个问题:修改vsftpd.conf配置文件中的 xferlog_enable=YES (打开流量日志功能)xferlog_file=/var/log/vsftpd.log(日志文件存放地点),分析vsftpd.log文件中某文件的 用户下载次数,上传次数进行程序控制即可。比如发现日志出现a用户下载xxx.rar文件出现3次,则xxx.rar文件权限为000。
Q:看专家的解答真的很细心,很耐心。我想请教一个问题,我的vsftpd使用的是 anonymous_enable=NO,使用的用户的登录,当时每次登陆都会等很久,大概10秒左右。于是我去抓包分析原因,发现client端会先使 用匿名用户登录一次,被拒绝以后,才使用输入的ID,这个是怎么回事?想了很多办法,没有解决,我就没管他了,但是后来自己又好了。相当郁闷啊。能请专家 分析下原因吗?
A:其实这个问题是您所使用的客户端软件中存在缓存或者记录造成的,与服务器没有关系的。
Q:老师:为什么通过VSFTP上传文件后,文件内容的头部都会被添加进去一些代码,而且有什么上传到服务器上的文件大小和这个文件在我本机的大小是不一样的,差的很多。
A: 在传输文件的时候分为文本方式和ASCII方式,如果一个二进制文件(.exe)所使用的是默认文本方式就会被加东西的,你需要选择为ASCII方式即可。
Q:还有一个问题是关于下载的线程和速度的限制。在公网上分享资源,比如一个游戏客户端,这种情况线程和速度应该如何限制,我意思是一个ip给多少线程多少带宽为宜。
A: 一般每ip 5个线程,带宽64K。
Q:接11楼问题:当我们修改/etc/sysconfig/i18n这个文件。比如原来是 zh_CN.UTF-8 修改成 zh_CN.GB2312,这个时候 客户端问题没有了!可是在服务器上我们执行serviceXXX restart 的时候提示都是乱码 如何处理呢(我在Gnome环境)?
A:选择GNOME环境的登录语言为zh_CN.GB2312就好了
Q:现在vsftpd不知怎么可以做每个用户的磁盘配额。老师指点下。
A: 使用Quota来进行限制。第一步 让分区支持Quota(包含boot目录的分区不要做,出错)
[root@linux ~]# vi /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/disk1 /disk1 ext3 defaults 1 2
LABEL=/disk2 /disk2 ext3 defaults,usrquota,grpquota 1 2
/dev/hda3 swap swap defaults 0 0
注意到我们所需要设定的那个/disk2的那一行,在第四字段多了usrquota,grpquota注意,在『defaults,usrquota,grpquota』之间都没有空格!
第二步 重启,让修改生效
第三步 生成quota支持文件
[root@linux ~]# quotacheck -avug
quotacheck: Scanning /dev/hdb1 [/disk2] done
quotacheck: Checked 3 directories and 4 files
[root@linux ~]# ll /disk2
-rw------- 1 root root 6144 Sep 6 11:44 aquota.group
-rw------- 1 root root 6144 Sep 6 11:44 aquota.user
第四步 配置用户或组限制
edquota -u quser1
Disk quotas for user quser1 (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 45000 50000 0 0 0
再次强调的是,因为我的/disk2里面并没有任何数据存在,所以,在上面这个表格当中,blocks与inodes才会都是0,如果您是使用/home 来进行quota设定的,那么blocks/inodes肯定不会是0,这里要特别留意的。好了,上面特殊字体的部分就是我们的设定了,分别是45000 及50000,那个单位是KBytes啦,转成MBytes应该是要除以1024才对,不过,简单算一下就好了,不用太介意!^_^。然后将quser1 的设定直接复制给quser2吧!
edquota -p quser1 quser2
接下来要来设定宽限时间,还是使用edquota!
[root@linux ~]# edq!ota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hdb1 1days 7days
将时间改为1天(原本是7days改成1days),好了!查询一下是否真的有设定进去呢?使用quota -v来查询:
[root@linux ~]# quota -vu quser1 quser2
Disk quotas for user quser1 (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 45000 50000 0 0 0
Disk quotas for user quser2 (uid 503):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 45000 50000 0 0 0
特别注意到,由于我们的使用者尚未超过45MB,所以grace(宽限时间)就不会出现啦!这样很够清楚了吧?!
编辑群组可使用的空间:
[root@linux ~]# edquota -g qgroup
Disk quotas for group qgroup (gid 502):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 80000 90000 0 0 0
[root@linux ~]# quota -vg qgroup
Disk quotas for group qgroup (gid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 80000 90000 0 0 0
这样就设定好了group的quota!同样的,因为整个群组的总使用量还没有到达80000KBytes,当然那个grace就不会有任何信息显示了! 但这个地方倒是有很多朋友问到一个小问题,那就是『为什么我两个用户quser1、quser2的设定值在soft与hard分别是45/50MB,但为 何你的group总量(hard)设定仅有90MB呢?』,也就是说,当某个用户用了50MB的量,那另一个不就最多可以使用到40MB而已。
Q:听说Vsftp 不能限制用户每次上传下载的文件的大小,有什么方法补救呢?
A:vsftpd没有这个功能。可以用ulimit来限制,rh系和debian的可以修改这个文件:
/etc/security/limits.conf
增加一行类似的:
ftpuser1 hard fsize XXXXXXX
这样就增加了ftpuser1的文件限制。

转载于:https://blog.51cto.com/andaychen/793938

VSFTP服务的日常应用及疑难问题解析相关推荐

  1. linux入门系列15--文件传输之vsftp服务

    linux入门系列15–文件传输之vsftp服务 前面的系列文章基本讲完了linux管理相关的基础知识,从本篇开始讲解centos7中服务程序的部署和配置,以便为外部提供各种服务. 日常工作和娱乐中, ...

  2. linux系统上搭建vsftp服务

    实验 实验环境: 在虚拟机搭建一台linux服务器和一台win7系统客户机. 实验要求: 一,匿名访问FTP服务,并可以上传和下载目录和文件. 二,用户验证访问FTP服务,上传和下载目录和文件. 三, ...

  3. VSFTP服务--Linux学习笔记

    基本介绍: FTP: FTP是File Transfer Protocol(文件传输协议)的缩写. FTP本质上是一个应用程序,用于在互联网上控制文件的双向传输. VSFTP: VSFTP(Very ...

  4. iptables 配置后连接不上数据库_Linux服务器配置-VSFTP服务配置(三)

    上文:Linux服务器配置-VSFTP服务配置(二) 一.vsftpd服务防火墙配置 1.主动(POST)模式 FTP 防火墙配置 CentOS6 系统 iptables 的配置 iptables - ...

  5. HP Unix vsftp服务配置

    HP Unix vsftp 服务配置: /opt/ssh/utils/ssh_chroot_setup.sh 运行脚本,会提示输入要建立的vsftp账号和要限制的家目录, 比如要限制的家目录为/Jia ...

  6. mysql8.0版本的服务器名称_Linux服务器配置-VSFTP服务配置(六)

    上文:Linux服务器配置-VSFTP服务配置(五) 上文中已经介绍了使用数据库文件方式配置虚拟用户认证登录FTP服务器,这篇文件将介绍通过数据库方式(vsftpd服务+pam_mysql+MySQL ...

  7. centos6配置mysql远程访问_Linux服务器配置-VSFTP服务配置(六)

    上文:Linux服务器配置-VSFTP服务配置(五) 上文中已经介绍了使用数据库文件方式配置虚拟用户认证登录FTP服务器,这篇文件将介绍通过数据库方式(vsftpd服务+pam_mysql+MySQL ...

  8. linux 6.3 ftp安装,CentOS6.3下安装VSFTP服务

    centos下安装ftp服务器详细步骤: 第一步,检查服务器端是否已经安装ftp:[root@localhost centos]# rpm -q vsftpd 如果出现的是:[root@localho ...

  9. linux中ftp的工作原理,Linux系统学习 十二、VSFTP服务—简介与原理

    1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...

最新文章

  1. 从小乡村走出的985高校博导坦言:读书这条路最简单!
  2. 有查看自己dian nao mi |W| ma 的软件
  3. BASIC-12 十六进制转八进制
  4. 步步为营-17-FileStream-文件加密/解密
  5. javascript 询问_JavaScript解释引擎
  6. Repast Simphony——案例:僵尸感染人类
  7. C语言开关读程序,手把手教你学单片机的C语言程序设计(十)开关语句和循环语句.pdf...
  8. Mac-录屏软件-视频转gif动图
  9. MYSQL-Front新手连接数据库总结
  10. 开源多云技术平台——Choerodon猪齿鱼发布0.23版本
  11. openpcdet KeyError: ‘road_plane‘
  12. 十分钟理解线性代数的本质_线性代数的本质
  13. linux运维工程师 pdf下载,linux运维工程师命令.pdf
  14. 如何通过iPhone或Android手机制作自己的QR码
  15. SAE J3016 自动驾驶分级定义 2021年4月更新
  16. 18年ACM赛后总结
  17. 身份验证中的allow users=\?\ /中的?和*各是什么意思?
  18. BeanCopy和BeanCopier在实际开发中的使用(属性copy效率优化)
  19. 音视频入门-02-RGB拼图
  20. 用java计算电阻,NTC热敏电阻计算公式

热门文章

  1. 超级账本 --- ReadWriteSet的逻辑结构
  2. IDC:2017年医疗行业IT花费将达336.5亿
  3. vsftpd更新和修改版本号教程
  4. Timer运行多个TimeTask
  5. Gentle.NET Attribute
  6. Python基础函数学习笔记(三)
  7. 数据安全治理所遵循的有哪些原则
  8. coap 返回版本信息_CoAP 协议解析说明(转)
  9. java list foreach 修改_Java ArrayList在foreach中remove的问题分析
  10. 因果推断笔记——自整理因果推断理论解读(七)