linux系统的Web服务器集成vsftp的方法

Linux技术    2012-08-29 10:18  

  今天我们说下在apahce服务器上集成vsftp,以及apache和vsftp虚拟账户的权限配置。

  三、web服务器下的ftp安装配置

  linux下的ftp开源软件很多,我们这里选择的是vsftp,它的信息你可以去问度娘,不解释,直接进入安装配置,同样我们使用yum命令。

  yum install vsftpd pam db4 【安装vsftpd主程序/pam验证/db4工具】

  chkconfig vsftpd on 【设置vsftpd开机启动】

  service vsftpd start 【启动vsftpd服务】

  1、配置vsftpd配置文件:

  vsftpd的配置文件默认位置在:/etc/vsftpd/vsftpd.conf,通常情况下我们选择先备份一份原始的配置文件,然后编辑,具体步骤如下:

  mv vsftpd.conf vsftpd.conf-old 【将vsftpd.conf文件改名为vsftpd.conf-old 备份】

  vi /etc/vsftpd/vsftpd.conf 【新建并编辑vsftpd.conf文件】

  我的习惯是直接更名原始配置文件然后新建一个文件写入需要的配置信息,你同样可以复制一份原始文件,然后修改。

  接上打开新建vsftpd.conf文件,按照如下配置写入:

  anonymous_enable=NO

  //禁止匿名用户登录,通常我们web服务器上的ftp都不允许匿名登录

  local_enable=NO

  //禁止(或允许)本地用户登录

  write_enable=YES

  //赋予可写入权限

  chroot_local_user=YES

  //锁定用户目录,ftp用户登录ftp只能在自己的目录下操作

  anon_upload_enable=NO

  anon_mkdir_write_enable=NO

  //禁止匿名用户的上传、新建目录权限

  dirmessage_enable=YES

  //允许ftp用户列出文件目录

  xferlog_enable=YES

  //写入日志

  connect_from_port_20=YES

  listen=YES

  //使用端口20,通常这几项是默认的

  pam_service_name=vsftpdpamconf

  userlist_enable=YES

  tcp_wrappers=YES

  //第一行比较重要,指定了pam验证的配置文件

  guest_enable=YES

  //开启虚拟用户

  guest_username=apache

  //指定虚拟用户使用本地用户apache的权限*这项特别重要,web服务器上面的ftp虚拟用户一定要设置成apache权限,否则ftp上传的文件不能被正常访问,也无法修改网站生成的文件。

  user_config_dir=/etc/vsftpd/vuser_conf

  //虚拟用户的配置文件存放位置

  virtual_use_local_privs=YES

  //虚拟用户使用本地用户权限,这项要有,否则ftp用户无法更改文件权限

  然后保存并退出vi编辑器,这一步我们的vsftp.conf就配置好了,执行:service vsftpd restart 重启vsftpd服务测试配置文件书写是否正确。

  2、添加vsftpd虚拟账户:

  上面我们配置了虚拟用户的验证文件类型是pam,文件名是vsftpdpamconf,下面步骤我们要进入目录/etc/vsftpd 中建立虚拟用户db库:

  vi vuservsftpd.txt 【新建并编辑文件vuservsftpd.txt】

  写入你要建立的虚拟用户和密码,单行为用户名双行为密码,注意此不能有空格,示例:

  vuser1

  password1

  vuser2

  password2

  ………………

  建立完成后保存退出,然后通过db命令来生成vsftpd验证需要使用的虚拟用户库文件:

  db -T -t hash -f vuservsftpd.txt vsftpdpamconf.db

  //注意db文件名要与vsftpd.conf中设置的pam认证名相同

  组后我们为了安全可以删掉刚刚新建的vuservsftpd.txt,下次需要添加用户名的时候再新建即可,还可以将vsftpdpamconf.db文件权限设置为644。

  3、添加vsftpd虚拟账户配置文件:

  只新建了账户验证还是不够的,因为虚拟账户没有对应的配置文件并不会生效,1步里面我们在vsftpd.conf文件中确定了虚拟账户的配置文件目录为:/etc/vsftpd/vuser_conf,下面我们进入这个目录工作:

  配置文件的命名必须是与虚拟账户名相同,所以我们新建了两个文件:vuser1、vuser2,并根据需要写入如下配置信息:

  local_root=/var/www/html/demo

  //设定虚拟用户的更目录,因为我们需要实现每一个网站一个ftp帐号管理,所以他的根目录就是我们需要管理的网站虚拟目录。

  write_enable=YES

  download_enable=YES

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  anon_other_write_enable=YES

  //赋予虚拟用户写入、下载上传、新建目录等其它权限

  anon_world_readable_only=no

  //目前不明白这个的意义,但是必须存在

  上面是我的配置文件,你可根据需要添加或者注销部分权限,注销只需要在语句前面加上“#”号,当然你也可以直接删掉。

  到这里我们的linux下web+ftp就可以配置成功了,你也可以使用ftp软件登录上传程序并安装你的网站。

  上面都配置完成网站还是无法访问也无法登录ftp怎么办?

  在做了如上配置,并且保证你所做的配置都没有问题的情况下,你就要考虑下防火墙和linux的默认安全机制,有些系统默认是开启SElinux和iptable防火墙的,这时我们需要将其关闭来检验是否配置成功:

  setenforce 0

  service iptables stop

  //临时关闭selinux和iptables防火墙,重启后恢复

  上面是临时关闭安全机制selinux和防火墙iptables的方法,通常笔者不建议永久关闭,因为我们的服务需要保护,如果关闭后测试以上web和vsftp都可以正常访问那我们再来慢慢配置防火墙规则,有关88iptables的配置我们下篇文章继续讨论。

在线留言

我要留言