VSFTPD配置怎么样一步一步实现

来源:爱站网时间:2020-10-04编辑:网友分享
在VSFTPD配置中,从“匿名”--“本地用户”--“虚拟用户”你知道要怎么实现吗?带着问题,下面跟随爱站技术频道小编来了解下吧!

  在VSFTPD配置中,从“匿名”--“本地用户”--“虚拟用户”你知道要怎么实现吗?带着问题,下面跟随爱站技术频道小编来了解下吧!

  1,下载VSFTPD.TAR.GZ

  2,检查和建立相应账户和目录

  1,nobody用户

  [root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody

  nobody:x:99:99:Nobody:/:/sbin/nologin

  如不存在请建立相关账户。

  2,/usr/share/empty 目录, 如不存在请创建

  3,如允许匿名访问,需创建Ftp用户,家目录为/var/ftp(一般ftp用户存在而家目录不存在)

  [root@main vsftpd-2.1.0]# mkdir /var/ftp/

  [root@main vsftpd-2.1.0]# chown root.root /var/ftp

  [root@main vsftpd-2.1.0]# chmod 755 /var/ftp

  3,解压、编译、安装程序(其实vsftpd用rpm和用源码安装差不多,编译安装反而不方便,推荐各位RPM安装,呵呵)

  [root@main ~]# tar xzfv vsftpd-2.1.0.tar.gz

  [root@main ~]# cd vsftpd-2.1.0

  [root@main vsftpd-2.1.0]# make && make install

  4,复制相关文件

  如果是用RPM安装,可能会和源码安装的文件路径略有不同,如/etc/vsftpd.conf变成了/etc/vsftpd/vsftpd.conf,这类变动请自行 find相关文件。

  主配置文件

  [root@main vsftpd-2.1.0]# cp vsftpd.conf /etc/vsftpd.conf

  PAM身份验证用文件

  [root@main vsftpd-2.1.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp

  5,配置vsftpd.conf

  启用/禁止匿名用户访问。

  anonymous_enable=YES/NO

  允许本地用户登录并允许其上传文件。

  local_enable=YES

  write_enable=YES

  将本地用户锁定在主目录中,不允许切换到上一级目录中

  chroot_local_user=YES

  匿名和本地用户限速(单位byte)

  anon_max_rate=数字

  local_max_rate=数字

  禁止某些用户通过ftp登录服务器。如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。在vsftpd.conf中有三个选项控制:

  userlist_deny=YES/NO

  userlist_enalbe=YES

  userlist_file=/etc/vsftpd.user_list

  如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户一行。

  禁止用户通过FTP修改文件或文件夹的权限。

  chmod_enable=NO(

  设置本地用户上传的文件或文件夹的umask值(默认为077)

  local_umask=022

  最多同时允许100个客户连接

  max_clients=100

  每个ip地址最多允许开3个线程

  max_per_ip=3

  只监听来访问192.168.0.2(适用本机多网卡、多IP的情况)的FTP服务请求

  listen_address=192.168.0.2

  6,安装完成后使用vsftpd命令即可启动vsftpd服务。保证防火墙开放相关端口后尝试下匿名登陆吧,注意所有匿名用户都登录到相同的目录中/var/ftp。

  我们可以通过pgrep vsftpd 来查看vsftpd是否运行起来,可以用pkill vsftpd 来杀死vsftpd进程,把vsFTPd关闭。所以上文说更推荐用rpm安装,那样就可以用service vsftpd start|stop|restart来控制了。

  [root@main ~]# pgrep vsftpd

  2745

  [root@main ~]# pkill vsftpd

  7,设置pub目录,允许匿名用户上传、下载文件。

  更改配置文件,确保有这几项:

  anonymous_enable=YES

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  anon_umask=022

  新建文件夹,并更改权限。

  [root@main ~]# mkdir /var/ftp/pub

  [root@main ~]# chmod 777 /var/ftp/pub

  尝试一下匿名上传下载吧,应该没问题。

  8,设置使用本地用户登陆FTP服务器,并进行权限设置。

  添加一个只能从ftp登录服务器,而不能从本地shell登录的用户。以下创建一个用户ftpuser,不允许从本地登录

  [root@localhost root]# useradd -g ftp -s /sbin/nologin ftpuser

  创建账户和密码后改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限:

  local_enable=YES

  write_enable=YES

  local_umask=022

  尝试用本地用户上传和下载文件。(PS,我不知道为什么我无法进行上传下载操作,但我重启系统后可以应用了)

  还可以用userlist_deny=YES/NO

  userlist_enalbe=YES

  userlist_file=/etc/vsftpd.user_list

  这些选项对用户进行控制。

  9,尝试使用虚拟用户访问FTP服务。

  创建一个口令源文件,文件格式是第一行用户名、第二行密码、第三行用户名、第四行密码……

  [root@main ~]# cat temp_pass.txt

  caocao

  caomengde

  xiaocaocao

  xiaocaomengde

  使用db_load命令生成认证文件。我遇到的情况就是本机没有db_load这个命令,网上搜到的答案是缺少DB4的rpm包,应该是把光盘中DB4开头的rpm包都装全,我嫌麻烦,采用的yum -y install db4*,装了以后就有db_load命令了。

  [root@main ~]# db_load -T -t hash -f temp_pass.txt /etc/vuser.db

  设置db文件的权限,同时删除口令文件。

  [root@main ~]# chmod 600 /etc/vuser.db

  [root@main ~]# rm temp_pass.txt

  建立虚拟用户所需的PAM配置文件

  [root@main ~]# vi /etc/pam.d/ftpuser.vu

  #添加如下内容

  auth required /lib/security/pam_userdb.so db=/etc/vuser

  account required /lib/security/pam_userdb.so db=/etc/vuser

  添加新用户,可以考虑设置该用户nologin

  [root@main home]# useradd vuserftp

  修改vsftpd.conf配置文件,有则改,无则添加。

  guest_enable=YES

  guest_username=vuserftp

  pam_service_name=ftpuser.vu

  重启一下,现在访问ftp://caocao@ftp是否可以用caomengde做密码访问?如果期间有小问题,可以考虑以下目录权限问题。

  10,尝试给虚拟用户分配权限

  修改VSFTPD的配置文件,有则改,无则加。创建并进入这个文件夹。

  user_config_dir=/etc/vuserftp/

  [root@main vuserftp]# mkdir /etc/vuserftp/

  [root@main vuserftp]# cd /etc/vuserftp/

  创建虚拟用户权限的配置文件

  [root@main vuserftp]# vi caocao

  write_enable=YES

  anon_world_readable_only=NO

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  anon_other_write_enable=YES

  local_root=/home/vuserftp/caocao

  创建虚拟用户的目录,并配置权限。

  [root@localhost ~]# mkdir /home/vuserftp/caocao

  [root@localhost ~]# chown vuserftp /home/vuserftp/caocao/

  11,我又照着这个教程复核了一下虚用户登录FTP的相关过程。show 相关配置文件和权限,因仅仅是实验用的,所以配置比较粗糙。大家可以自己优化和精简。

  [root@localhost ~]# ll /home/vuserftp/

  total 4

  drwxr-xr-x 2 root root 4096 Mar 30 09:47 caocao

  [root@localhost ~]# grep -v '#' /etc/vsftpd.conf

  local_enable=YES

  write_enable=YES

  local_umask=022

  dirmessage_enable=YES

  xferlog_enable=YES

  connect_from_port_20=YES

  listen=YES

  guest_enable=YES

  guest_username=vuserftp

  pam_service_name=ftpuser.vu

  user_config_dir=/etc/vuserftp/

  [root@localhost ~]# rpm -qa |grep db4-

  db4-java-4.3.29-9.fc6

  db4-devel-4.3.29-9.fc6

  db4-tcl-4.3.29-9.fc6

  db4-4.3.29-9.fc6

  db4-utils-4.3.29-9.fc6

  [root@localhost ~]# cat /etc/passwd |grep vuserftp

  vuserftp:x:500:500::/home/vuserftp:/bin/bash(可以改成nologin)

  [root@localhost ~]# cat /etc/pam.d/ftpuser.vu

  auth required /lib/security/pam_userdb.so db=/etc/vuser

  account required /lib/security/pam_userdb.so db=/etc/vuser

  通过本文上述介绍,不知道各位小伙伴知道怎么在VSFTPD配置“匿名”--“本地用户”--“虚拟用户”了吗?更多有关技术类型文章,尽在爱站技术频道js.aizhan.com。

上一篇:图解FTP服务器防止被入侵

下一篇:filezilla server 0_9_34安装介绍

您可能感兴趣的文章

相关阅读