Redhat Linux下FTP服务配置

  一、FTP工作原理
        (1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。
        (2)用户运行FTP命令,请求FTP服务器为其服务。
                 例:FTP  202.119.2.197
        (3)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP  端口21。
        (4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20,进行数据传输。
        (5)本次子命令的数据传输完,拆除数据连接,结束FTP-DATA进程。
        (6)用户继续输入FTP子命令,重复(4)、(5)的过程,直至用户输入quit命令,双方拆除控制连接,结束文件传输,结束FTP进程。

二、安装vsftp服务
        (1)rpm  -qa  vsftpd                                               #查询是否已安装vsftpd服务,若没有安装。执行(2);
        (2)rpm  -ivh vsftpd-vsftpd-2.2.2-6.el6.i686           #安装vsftpd服务。

三、vsftpd服务的启动与关闭

         (1) /etc/rc.d/iit.d/vsftpd start                                 #启动
         (2) /etc/rc.d/iit.d/vsftpd stop                                 #关闭
         (3) /etc/rc.d/iit.d/vsftpd restart                              #重启

四、vsftpd配置文件
         (1) /etc/vsftpd/vsftpd.conf                     主配置文件
         (2) /etc/pam.d/vsftpd
PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
         (3) /etc/vsftpd/ftpusers   
禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。(注意:linux-4中此文件在/etc/目录下)
         (4) /etc/vsftpd/user_list
禁止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd/vsftpd.conf中设置 userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下)
         (5) /var/ftp
vsftpd提供服务的文件散集地,它包括一个pub子目录,默认情况下,所有目录都是只读的。

五、vsftpd配置文件详解
         (1)用户登录控制
             anonymous_enable=YES,允许匿名用户登录。
             no_anon_password=YES,匿名用户登录时不需要输入密码。
                local_enable=YES,允许本地用户登录。
             deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。
                 banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。

           (2)用户权限控制
              write_enable=YES,开启全局上传权限。
              local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。
              anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。
              anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。
              chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!
              chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。
  chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。
                chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。
               nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。
               async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!
               ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。
  
             (3)用户连接和超时选项
               idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。
               data_connection_timeout=120,设定默认的数据连接超时时间。
       
             (4)服务器日志和欢迎信息
                dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。
                ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。
                xferlog_enable=YES,启用记录上传/下载活动日志功能。
                xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log.
              
六、创建虚拟用户
             (1)安装必须的软件
                         rpm  -ivh  db4-4.7.25-16.el6.i686
                         rpm  -ivh  db4-utils-4.7.25-16.el6.i686
             (2)创建用户数据库
                     1、创建一临时文件并编辑文件      
                           touch   /etc/vsftpd/ftp_db_users
                           vim   /etc/vsftpd/ftp_db_users      (文件内容如下:创建了两个帐号)                   
                                            ftpuser1                   用户1
                                            ftp                            用户1密码
                                            ftpuser2                   用户2
                                            ftp                            用户2密码
                      2、用db_load命令生成pam_userdb认证所需的帐号文件
                            db_load  -T  -t  hash  -f  /etc/vsftpd/ftp_db.users  /etc/vsftpd/vsftpd.login.db
                      3、配置PAM信息
                            在/etc/pam.d/目录下新建宇哥文件夹,名字为vsftpd.pam,文件内容如下:
                                            auth        required       pam_userdb.so   db=/etc/vsftpd/vsftpd.login
                                            account  required       pam_userdb.so   db=/etc/vsftpd/vsftpd.login
                      4、配置vsftpd帐号
                            vsfptd服务永续在启动是指定配置文件,所以我们新建一个文件/etc/vsftpd/vsftpd.virtual.conf ,内容如下:
                                             listen=YES
                                             listen_port=21
                                             anonymous_enable=NO
                                             local_enable=YES
                                             chroot_local_user=YES
                                             guest_enable=YES
                                             guest_username=ftp
                                             max_clients=10
                                             max_per_ip=10
                                             pam_service_name=vsftpd.pam
                                             user_sub_token=$USER
                                             local_root=/var/ftp/virtual/$USER     ;指定每个虚拟用户账号配置目录
                                             local_root=/var/ftp
                                             xferlog_enable=YES
                                             xferlog_file=/var/log/vsftp.log
                                             xferlog_std_format=YES
                      5、创建虚拟用户目录
                            根据前面提示我们知道,ftpuser1和ftpuser2的家目录分别为:
                            /var/ftp/virtual/ftpuser1和/var/ftp/virtual/ftpuser2      在启动服务之前,我们先创建这两个目录
                                              mkdir  /var/ftp//virtual/ftpuser1  -p
                                              mkdir  /var/ftp//virtual/ftpuser2  -p
                                              chown  ftp.ftp  /var/ftp/virtual/ftpuser1
                                              chown  ftp.ftp  /var/ftp/virtual/ftpuser2
                      6、按照配置文件启动服务
                                              service  vsftpd  stop
                                              /usr/sbin/vsftpd  /etc/vsftpd/vsftpd.virtual.conf
                      7、用虚拟用户测试虚拟权限
                                              ftp  -u  ftpuser1  192.168.1.114

七、FTP客户端配置及访问
      (1)Windows环境下访问
                                          C:\>ftp 192.168.1.114
                                          连接到 192.168.1.114。
                                          220 (vsFTPd 2.2.2)
                                          用户(192.168.1.114:(none)): ftpuser1
                                          331 Please specify the password.
                                          密码:
                                          230 Login successful.
                                          ftp>
       (2)Linux环境下访问
                                          [root@localhost /]# ftp
                                          ftp> open 192.168.1.114
                                          Connected to 192.168.1.114 (192.168.1.114).
                                          220 (vsFTPd 2.2.2)
                                          Name (192.168.1.114:sunmaosheng): ftpuser2
                                          331 Please specify the password.
                                          Password:
                                          230 Login successful.
                                          Remote system type is UNIX.
                                          Using binary mode to transfer files.
                                          ftp>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值