使用vsftpd服务传输文件

1.文件传输协议

      文件传输协议(FTP,file transfer protocol),即能够让用户在互联网上上传文件,下载文件的文件协议。

      ftp协议占用两个端口号:

      20:数据传输,用于上传下载。

      21:命令控制,用于接收客户端执行的ftp命令

      ftp数据传输的类型:

      主动模式:ftp服务端主动向ftp客户端发起连接请求。

      被动模式: ftp服务端等待ftp客户端的连接请求。

2.安装vsftpd服务

      yum install vsftpd -y。

      安转完后,启动并加载开机启动项中。

      vsftpd的程序与配置文件:

      主程序 /usr/sbin/vsftpd    

      用户禁止列表  /etc/vsftpd/ftpusers   /etc/vsftpd/user_list

      主配置文件  /etc/vsftpd/vsftpd.conf

      配置文件参数说明:

listen=[YES|NO] //是否以独立运行的方式监听服务
listen_address=ip地址 //设置要监听的ip地址
listen_port=21 //设置ftp服务的监听端口
download_enable=[YES|NO]
userlist_enable=[YES|NO]//是否启用“禁止登陆用户名单”
userlist_deny=[YES|NO]  //yes表示禁止名单中的用户,no表示仅允许名单中的用户
max_clients=0 //最大客户端连接数,0为不限制
max_per_ip=0 //统一ip最大连接数,0为不限制
anonymous_enable=[YES|NO] //是否允许匿名用户访问
anon_upload_enable=[YES|NO] //是否运行匿名用户上传文件
anon_mask=022 //匿名用户上传文件的umask值
anon_root=/var/ftp  //匿名用户上传的根目录
anon_mkdir_write_enable=[YES|NO] //是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] //是否开放匿名用户其他写权限
anon_max_rate=0 //匿名用户的最大传输速率,0为不限制
local_enable=[YES|NO] //是否允许本地用户登录ftp
local_umask=022 //本地用户上传文件的umask值
local_root = /var/ftp
chroot_local_user=[YES|NO] //是否将用户权限固定在ftp目录,更加安全
local_max_rate  //本地用户的最大传输速率


3. vsftpd的验证方式

     vsftpd程序提供的ftp服务可选验证方式,分别为匿名访问,本地用户和虚拟用户。

     匿名访问:任何人无需验证即可登录ftp服务端。

     本地用户:使用ftp服务器中的用户,密码信息。

     虚拟用户:创建独立的ftp账号资料。

    

3.1匿名访问模式

     ftp匿名访问模式为不安全的服务模式,不要放置敏感数据。要根据上面的参数配置匿名访问权限。然后重启服务,加入到开机自动启动中。

     ftp命令用于使用ftp服务,格式为ftp [参数] [ftp主机]。

     如果配置了权限但是还是不能创建目录,先看有没有对那个文件或目录的写入权限。有权限的话看是不是SELinux规则限制了

用getsebool -a | grep ftp查看。再用setsebool -P ftpd_full_acess=on来设置权限。

3.2 本地用户模式

     本地用户要比匿名用户访问更加的安全。配置好后重新启动,加入到开机自动启动中。这里可以启动禁止名单用户.

      userlist_enable=YES,userlist_deny=YES//yes表示禁止名单里的用户,no表示只有名单里的用户能访问。

3.3 虚拟用户模式

     因为虚拟用户的账号和口令都不是系统中真实存在的,所以比本地用户更加安全。但是配置比较麻烦:

    1.建立虚拟ftp用户数据库文件

    2.创建ftp根目录以及虚拟用户映射的系统用户。

    3.建立支持虚拟用户的PAM认证文件

    4.在vsftpd.conf中添加支持配置

    5.为虚拟用户设置不同的权限。

    6.重启vsftpd,验证效果。


1.建立虚拟ftp用户数据库文件

     cd /etc/vsftpd

     vim vuser.list//里面单数行为账号,双数行为密码,可以配置多个

test1//账号
123456//test1的密码
test2//账号
654322 //test2的密码
    db_load -T -t hash -f vuser.list vuser.db//用hash算法生成数据库文件

    chmod 600 vuser.db  //设置权限

    rm -f vuser.list


2.创建ftp根目录以及虚拟用户映射的系统用户。
    useradd -d /var/ftproot -s /sbin/nologin  virtual//创建家目录并且不能登录的virtual系统用户

    chmod -Rf 755 /var/ftproot//保证其他用户可以访问

3.建立支持虚拟用户的PAM认证文件

    vim /etc/pam.d/vsftpd.vu

auth  required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

4.在vsftpd.conf中添加支持配置

    关闭匿名模式

local_enable=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
allow_writeable_chroot=YES

5.为虚拟用户设置不同的权限。

    vim  /etc/vsftpd/vsftpd.conf   设置user_config_dir=/etc/vsftpd/vuser_config_dir

    mkdir /etc/vsftpd/vuser_confgi_dir

    cd  /etc/vsftpd/vuser_confgi_dir

    vim  user1

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

6.验证效果

    重启ftp服务,用vuser里面的账户登录。


你可能感兴趣的:(linux)