当前位置: > Linux服务器 > ftp >

记我的一次VSFTP服务配置过程

时间:2015-01-15 22:57来源:linux.it.net.cn 作者:IT
  公司原来的FTP服务器不能使用了,重装系统时我使用了Centos 6.5 系统,在这个平台下选择FTPSERVER,那VSFTP无疑是不错的选择。 
  我的需求: 
  目录结构:
     journal  此目录下所有登陆用户均可以访问,也可以建立目录, 上传文件、修改文件名等操作。但只能删除自已建立的文件和目录。别人的能看但不能删除。 
     pub   此目录下所有用户(包括匿名用户)均可以正常访问,但除FTPADMIN用户外其他用户均不可以修改此目录中的内容。 
    技术部     此目录为技术部人员使用,所有技术部用户均可以正常上传,下载文件、重命名、删除文件等操作。 其他组用户(包括匿名用户不能打开目录,更不能下载删除文件。)
   财务部    此目录和技术部目录要求相同。只能同部门用户访问,其他用户均不能访问。
   FTP主目录 
      FTP目录没有选择默认的/var/ftp  而是新增加了一块磁盘。在这个磁盘上单独做FTP服务器,挂载目录为/opt/FTPHOME
 
     根据此需求,当时分析使用虚拟用户来做,但后来咨询了很多人说虚拟用户是基于一个宿主(系统用户)来实现的,我这样的需求只能用系统用户来实现。  
实现过程
   一、前项准备工作
         1.1 关闭SELINUX  
          在/etc/selinux/config中将“SELINUX”项关闭,SELINUX=disabled。重启服务器
         1.2 开启所需要的端口
          为了方便,请直接关闭iptables  

chkconfig --level 345  iptables  off 

          重启服务器。 
         若服务器是在防火墙后面,请打开防火墙的20,21端口。 我的服务器前面有一台飞塔防火墙,通知网管开启了相应的端口。  
          1.3 安装vsftpd  
            yum install  vsftpd  
  至此,准备工作就绪,开始配置相应的服务。 
 二、建立相应的用户和用户组。 
使用以下命令建立用户,最后使用passwd 逐个建立密码。 

#useradd tecadmin –r –m –d /opt/FTPHOME  –s /sbin/nologin
#useradd tecuser –r –m –g tecadmin –d /opt/FTPHOME–s /sbin/nologin
#useradd caiwuadmin –r –m –d /opt/FTPHOME –s /sbin/nologin
#useradd caiwuuser –r –m –g caiwuadmin –d /opt/FTPHOME –s /sbin/nologin
#useradd ftpadmin –r –m –g root –d / /opt/FTPHOME
  三、建立相应的目录  
   cd  /opt/FTPHOME
   mkdir  journal   pub  财务部  技术部  
 四、修改目录属性
    chmod -R 1770    journal   pub  财务部  技术部    

	

chmod -R tecadmin:tecadmin 技术部 # 将技术部目录赋予技术部用户组,其他组不能访问。 chmod -R caiwuadmin:caiwuadmin 财务部 #将财务部目录赋予财务部用户组,其他组不能访问。

chmod -R ftpadmin:root pub #将pub目录赋予pub用户。

chmod -R 777 journal 赋予journal目录所有用户组可执行可访问权限。

chmod +t journal 赋予journal目录t权限,这样可以实现任何用户只能修改删除自已用户名创建的目录。不能删除、修改别人创建的目录,和文件。但可以下载。

 五、修改vsftpd.conf 配置文件。 
        5.1 先备份配置文件。 

  cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak

       5.2 修改配置文件。  

#vi vsftpd.conf
write_enable=YES #允许登入者有写权限
anonymous_enable=NO #禁止匿名用户访问
local_enable=YES #允许本地用户访问
local_umask=022 #本地用户新增档案时的umask值
file_open_mode=0755 #本地用户上传档案后的档案权限
ftpd_banner=Welcome to BOB's FTP server. #定义欢迎话语的字符串
xferlog_enable=YES #启用上传/下载日志记录
xferlog_file=/var/log/vsftpd.log #日志文件所在的路径及名称
xferlog_std_format=YES #将日志文件写成xferlog的标准格式
ascii_upload_enable=YES #启用ASCII 模式上传数据
ascii_download_enable=YES #启用ASCII 模式下载数据
chroot_list_enable=YES #在chroot_list中列出的用户不允许切换到家目录的上级目录
chroot_local_user=NO #
chroot_list_file=/etc/vsftpd/chroot_list #
userlist_enable=YES #在user_list中列出的用户不能访问FTP服务器,未列出的可以访问
userlist_deny=YES #
userlist_file=/etc/vsftpd/user_list #
tcp_wrappers=NO #不使用tcp wrapper来控制主机访问
setproctitle_enable=YES #每个与FTP服务器的连接,都以不同的进程表现出来
listen=YES #FTP服务器以standalone模式运行
port_enable=YES #FTP服务器启用PORT模式
pasv_enable=NO #禁用FTP服务器的PASV模式
listen_port=21 #FTP服务器监听21端口
connect_from_port_20=YES #指定FTP服务器使用20端口进行数据传输
ftp_data_port=20 #FTP服务器数据传输端口为20
pam_service_name=vsftpd  #使用PAM模块控制,vsftpd文件在/etc/pam.d目录下
idle_session_timeout=600 #600秒钟不对FTP服务器进行任何操作,则断开该FTP连接
data_connection_timeout=120 #建立FTP数据连接的超时时间为120秒
max_clients=0 #不限制用户的连接数量
max_per_ip=3 #每个IP只能与FTP服务器同时建立3个连接
local_max_rate=512000 #本地用户使用的最大传输速度
 六、编辑 chroot_list 文件    这个文件的作用是将用户锁定在本地目录,防止用户乱跑。 文件格式为一个用户名一行。

	

#vi /etc/vsftpd/user_list

七、重启ftp 服务,使用客户端测试。 
 
碰到的问题:
1、使用用户名密码登陆后一片空白, 什么也没有。 
     解决方法:修改匿名用户的空目录为/opt/FTPHOME  ,修改后重启FTP服务

usermod -D /opt/FTPHOME ftp

2、使用用户名密码登陆后一直提示“500 OOPS: cannot change directory     500 OOPS: 500 OOPS: child died”
     解决方法: 查看opt/ftphome目录权限为下面

	

drw-r--r--. 6 root root 4096 12 24 12:14 FTPHOME

由于此目录权限为644 其他用户无权限进入此目录执行,所以一直报错,修改用户目录权限后即可。 

	

chmod 655 /opt/FTPHOME

查看的技术资料


(责任编辑:IT)
------分隔线----------------------------