首页 运维 正文
Vsftpd实现虚拟账号

 2022-10-23    347  

  Vsftpd实现虚拟账号:

  1. 创建虚拟账号文件,奇数行为用户名,偶数行为口令:

Vsftpd实现虚拟账号

  vi/etc/vsftpd/account.txt 

  user1 

  pass1 

  user2 

  pass2 

  2. 将虚拟账号加入数据库

  db_load–T–thash–f/etc/vsftpd/account.txt/etc/vsftpd_login.db 

  chmod600/etc/vsftpd_login.db 

  3. 修改/etc/pam.d/ftp

  authrequiredpam_userdb.sodb=/etc/vsftpd_login 

  accountrequiredpam_userdb.sodb=/etc/vsftpd_login 

  4. 建立虚拟账号本地映射

  useradd–d[vuser_home]–g[groupname]–G[addtogroup]–s/sbin/nologinvuser 

  5. 或者直接编辑/etc/passwd设置虚拟账号本地不能登录

  vi/etc/passwd 

  vuser:x:uid:gid::[vuser_home]:/sbin/nologin 

  6. 设置虚拟账号本地映射目录权限

  chgrp 

  chownvuser 

  chmod 

  7. 配置/etc/vsftpd-pam.conf

  anonymous_enable=NO

  anon_upload_enable=NO

  anon_mkdir_write_enable=NO

  local_enable=YES

  guest_enable=YES

  guest_username=vuser

  8. 配置vsftpd自动运行,编辑/etc/profile,添加

  /usr/local/sbin/vsftpd-pam/etc/vsftpd-pam.conf& 

  锁定不同用户到不同目录,配置不同的读写权限配置/etc/vsftpd-pam.conf

  #锁定用户目录 

  chroot_list_enable=YES

  #指定用户配置文件位置 

  user_config_dir=/etc/vsftpd_user_conf 

  配置/etc/vsftpd_user_conf/,添加与账号对应的userid文件,内容如下:

  #指定用户登录根目录 

  local_root=[login_root] 

  #指定用户读写权限 

  write_enable=YES|NO 

  anon_world_readable_only=YES|NO 

  anon_upload_enable=YES|NO 

  anon_mkdir_write_enable=YES|NO 

  anon_other_write_enable=YES|NO 

  #指定用户下载速度 

  local_max_rate=500000

  更改vsftpd端口执行以下两行指令,只允许2121和2020端口打开,其余端口关闭:

  #iptables-AINPUT-ptcp-mmultiport--dport2121,2020-jACCEPT 

  #iptables-AINPUT-ptcp-jREJECT--reject-withtcp-reset 

  修改/etc/vsftpd/vsftpd.conf文件,在文本***添加以下两行:

  listen_port=2121

  ftp_data_port=2020

  只允许指定ip访问直接在/etc/hosts.allow中定义允许或拒绝某一源地址,可以通过以下配置来实现。先确保/etc/vsftpd/vsftpd.conf中tcp_wrappers=YES。

  假设提供168.192.2.1和210.31.8.1到210.31.8.254的连接,则可对/etc/hosts.allow进行如下设定:

  vsftpd:168.192.2.1210.31.8.:allow 

  ALL:ALL:DENY 

  给vsftpd增加新硬盘将新硬盘分区格式化后,挂到vsftpd用户目录下,并设定好用户为vuser,指定好读写权限。

  给vsftpd分配磁盘配额用系统自带磁盘配额,对vuser用户进行磁盘限额,修改/etc/fstab中根分区的记录,将/home分区的第4个字段改成defaults,usrquota,如下:

  LABEL=/home/homeext3defaults,usrquota12 

  #reboot//重新启动系统使设置生效 

  也可以用

  #mount-oremount/dev/sda6///dev/sda6的挂接点就是/home,这样可以不用启动系统。 

  如果对一个组进行磁配额,需要增加参数grpquota,例如

  LABEL=/home/homeext3defaults,grpquota12 

  也可以

  LABEL=/home/homeext3defaults,usrquota,grpquota12 

  #quotacheck-avu 

  说明:a-自动开启挂载文件系统的配额,v-显示信息,u-启用用户配额or g-启用组配额

  #edquotavuser//为用户ftpd设置磁盘配额 

  OR 

  #edquota-gvuser//为组vuser设置磁盘配额 

  系统会自动打开配额文件,如下:

  Diskquotasforuservuser(uid502): 

  Filesystemblockssofthardinodessofthard 

  /dev/sda6424001300 

  ***列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数,单位为KB。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。***两列用来设置用户在该文件系统上的软硬i节点限度。硬限是用户或组群可以使用的磁盘空间的绝对***值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的***磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period),默认七天的超越。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置。

  #quotaon-avu//打开磁盘配额监控进程,u是用户g是组 

  可以使用以下命令校验用户的配额是否被设置:

  #quotavuser 

  Diskquotasforuservuser(uid502): 

  Filesystemblocksquotalimitgracefilesquotalimitgrace 

  /dev/sda6424*011300 

  #edquota–t(-g)来设置过渡期(graceperiod)//当然只针对软限制而言 

  和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:

  Graceperiodbeforeenforcingsoftlimitsforusers: 

  Timeunitsmaybe:days,hours,minutes,orseconds 

  FilesystemBlockgraceperiodInodegraceperiod 

  /dev/sda67days7days 

  按需要修改后存盘退出

  用以下命令显示磁盘配额使用状态

  #repquota-a或repquota/dev/sda6(用户配额) 

  #repquota-g-a或repquota-a/dev/sda6(组的配额) 

  取消某个文件系统的配额限制

  #quotaoff-vug/dev/sda6//删除home分区的磁盘限额 

  #删除/etc/fstab中设置配额的部分 

  修改软配额的***超越时间

  注意:

  /,/boot/,/proc,/mnt/cdrom等无法使用配额,没用。而且磁盘配额不适合FAT和FAT32系统。

  以后当新设置了某个用户的配额,可以使用如下命令,马上生效。

  #quotacheck-auvgm--是不尝试重新挂载文件系统 

原文链接:https://77isp.com/post/8496.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。