CentOSFTP服务器的搭建方式

    作者:课课家教育更新于: 2017-03-27 17:41:29

      在CentOS上搭建FTP服务器,两种搭建方式:gssftp与vsftpd。那么,你们了解多少呢?现在,小编将带你们学习学习!
      1.yum install vsftpd
      2.启动/重启/关闭vsftpd服务器
      [root@localhost ftp]# /sbin/service vsftpd restart
      Shutting down vsftpd: [ OK ]
      Starting vsftpd for vsftpd: [ OK ]
      OK表示重启成功了.
      启动和关闭分别把restart改为start/stop即可.
      如果是源码安装的,到安装文件夹下找到start.sh和shutdown.sh文件,执行它们就可以了.
      3.与vsftpd服务器有关的文件和文件夹
      vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
      vsftpd服务器的根目录,即FTP服务器的主目录:
      在/var/ftp处pub处
      如果你想修改服务器目录的路径,那么你只要修改/var/ftp到别处就行了
      4.添加FTP本地用户

    CentOSFTP服务器的搭建方式_虚拟_FTP服务器_配置文件_课课家
      有的FTP服务器需要用户名和密码才能登录,就是因为设置了FTP用户和权限.
      FTP用户一般是不能登录系统的,只能进入FTP服务器自己的目录中,这是为了安全.这样的用户就叫做虚拟用户了.实际上并不是真正的虚拟用户,只是不能登录shell了而已,没能力登录系统.
      /usr/sbin/adduser -d /opt/test_ftp -g ftp -s /sbin/nologin test
      这个命令的意思是:
      使用命令(adduser)添加test用户,不能登录系统(-s /sbin/nologin),自己的文件夹在(-d /opt/test_ftp)),属于组ftp(-g ftp)
      然后你需要为它设置密码 passwd test
      这样就添加了一个FTP用户了.下面的示例可以帮助你进入FTP服务器了.
      [root@localhost ftp]# ftp
      ftp> open 192.168.0.33
      Connected to 192.168.0.33 (192.168.0.33).
      220 (vsFTPd 2.0.5)
      Name (192.168.0.33:gxl): test
      331 Please specify the password.
      Password:
      230 Login successful.
      Remote system type is unix.
      Using binary mode to transfer files.
      ftp> quit
      221 Goodbye.
      在windows中,只要在浏览器中输入 ftp://192.168.0.33 进入FTP服务器,然后 右键 登录,输入用户名和密码就可以登录自己的目录了.
      当然你要保证自己能读写自己的目录,就要在配置文件vsftpd.conf里设置一下就可以读写了.
      local_enable=yes
      write_enable=yes
      local_umask=022
      5.匿名上传下载
      修改配置文件即可vsftpd.conf,确定有以下几行,没有自己添加进去就可以了.
      anonymous_enable=yes
      anon_upload_enable=yes
      anon_mkdir_write_enable=yes
      anon_umask=022
      然后你可以新建一个文件夹,修改它的权限为完全开放,任何用户就可以登录这个文件夹,并上传下载文件:
      mkdir /var/ftp/guest
      chmod 777 /var/ftp/guest
      6.定制进入FTP服务器的欢迎信息
      在vsftpd.conf文件中设置:
      dirmessage_enable=yes
      然后进入用户目录建立一个.message文件,输入欢迎信息即可(我这里写入的是Welcome to gxLinux's FTP!):
      [root@localhost test_ftp]# ftp 192.168.0.33
      Connected to 192.168.0.33 (192.168.0.33).
      220 (vsFTPd 2.0.5)
      Name (192.168.0.33:gxl): test
      331 Please specify the password.
      Password:
      230-Welcome to gxlinux's FTP!
      230 Login successful.
      Remote system type is UNIX.
      Using binary mode to transfer files.
      7.实现虚拟路径
      将某个目录挂载到FTP服务器下供用户使用,这就叫做虚拟路径.
      比如将gxl用户的目录挂载到FTP服务器中,供FTP服务器的用户使用,使用如下命令即可:
      [root@localhost opt]# mount --bind /home/gxl /var/ftp/pub #使用挂载命令
      [root@localhost opt]# ls /var/ftp/pub
      LumaQQ Screenshot.png 桌面
      8.打开vsFTPd的日志功能
      添加下面一行到vsftpd.conf文件中,一般情况下该文件中有这一行,只要把前面的注释符号#去掉即可,没有的话就添加,或者修改:
      xferlog_file=/var/log/vsftpd.log
      9.限制链接数,以及每个IP最大的链接数
      修改配置文件中,例如vsftp最大支持链接数100个,每个IP能支持5个链接:
      max_client=100
      max_per=5
      10.限制传输速度

    添加FTP本地用户
      修改配置文件中,例如让匿名用户和vsftd上的用户(即虚拟用户)都以80KB=1024*80=81920的速度下载
      anon_max_rate=81920
      local_max_rate=81920
      11.将用户(一般指虚拟用户)限制在自家目录
      修改配置文件中,这样用户就只能访问自己家的目录了:
      chroot_local_user=yes
      如果只想某些用户仅能访问自己的目录,其它用户不做这个限制,那么就需要在chroot_list文件(此文件一般是在/etc/vsftpd/中)中添加此用户.
      编辑此文件,比如将test用户添加到此文件中,那么将其写入即可.一般的话,一个用户占一行.
      [root@localhost vsftpd]# cat chroot_list
      test
      12.绑定某个IP到vsFTPd
      有时候要限制某些IP访问服务器,只允许某些IP访问,例如只允许192.168.0.33访问这个FTP,同样修改配置文件:
      listen_address=192.168.0.33
      配置vsftpd.conf
      anonymous_enable=NO #禁止匿名
      local_enable=YES #允许本地登录
      write_enable=YES #允许写,如需上传,则必须
      local_umask=027 #将上传文件的权限设置为:777-local_umask
      anon_upload_enable=YES #允许虚拟用户和匿名用户上传
      anon_other_write_enable=YES #允许虚拟用户和匿名用户修改文件名和删除文件
      dirmessage_enable=YES
      xferlog_enable=YES #打开日志记录
      connect_from_port_20=YES
      xferlog_file=/var/log/vsftpd.log #日志存放位置
      xferlog_std_format=YES #标准日志格式
      idle_session_timeout=600 #空闲连接超时
      data_connection_timeout=120
      ftpd_banner=Welcome to ChinaRise FTP service #欢迎信息
      guest_enable=yes #允许虚拟用户
      guest_username=vsftpdguest #虚拟用户使用的系统账号
      virtual_use_local_privs=YES #虚拟用户拥有本地系统权限
      chroot_local_user=NO
      chroot_list_enable=YES
      #以上两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用
      chroot_local_user=YES
      listen=yes #监听/被动模式
      listen_port=21 #监听端口
      chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中
      user_config_dir=/etc/vsftpd/vsftpd_user_conf #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中
      虚拟用户其他设置
      在/etc/vsftpd/vsftpd.chroot_list 文件中写入允许登陆的虚拟用户名称,每行一个
      在/etc/vsftpd/vsftpd_user_conf 文件夹中创建一个以虚拟用户用户名命名的文件,
      写入:local_root = /var/FTP/子目录名
      然后在/var/FTP下创建一个对应的目录即可
      vsftpd安装配置
      1.安装vsftpd
      一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装:
      yum -y install vsftpd
      touch /var/log/vsftpd.log # 创建vsftp的日志文件
      在CentOS中,这样就可以完成了一个简单的匿名FTP的搭建。你可以通过访问ftp://yourip来进行,不过这个FTP没有任何权限。

    添加FTP本地用户
      2.基于匿名的FTP架设
      参考本博客上几篇关于Vsftpd的CentOS FTP服务配置文章。
      3.基于虚拟用户的FTP架设
      所谓虚拟用户就是没有使用真实的帐户,只是通过某种手段达到映射帐户和设置权限的目的。
      1)我们在/etc/vsftpd/vsftpd.conf中做如下CentOS FTP服务配置:
      anonymous_enable=NO 设定不允许匿名访问
      local_enable=YES 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。
      chroot_list_enable=YES 使用户不能离开主目录
      xferlog_file=/var/log/vsftpd.log 设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
      ascii_upload_enable=YES
      ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。
      pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
      以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。默认vsftpd.conf中不包含这些设定项目,需要自己手动添加CentOS FTP服务配置。
      guest_enable=YES 设定启用虚拟用户功能。
      guest_username=ftp 指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
      user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
      2)创建chroot list,将用户ftp加入其中:
      touch /etc/vsftpd/chroot_list
      echo ftp >> /etc/vsftpd/chroot_list
      3)进行认证:
      首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。
      yum install db4 db4-utils
      然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码
      ftpuser1
      ftppass1
      ftpuser2
      ftppass2
      接着,.生成虚拟用户认证的db文件
      db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
      随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句
      再增加以下两句
      auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
      account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
      最后,创建虚拟用户个性CentOS FTP服务文件
      mkdir /etc/vsftpd/vuser_conf/
      vi /etc/vsftpd/vuser_conf/ftpuser1
      内容如下:
      local_root=/opt/var/ftp1 虚拟用户的根目录(根据实际修改)
      write_enable=YES 可写
      anon_umask=022 掩码
      anon_world_readable_only=NO
      anon_upload_enable=YES
      anon_mkdir_write_enable=YES
      anon_other_write_enable=YES
      4.启动vsftp服务器
      mkdir /opt/var/ftp/ftpuser1
      chmod 777 /opt/var/ftp/ftpuser1
      service vsftpd start
      TroubleShootings:
      1.553 Could not create file
      一般都是SELinux的问题,设置SELinux的一个值,重启服务器即可。
      setsebool -P ftpd_disable_trans 1
      service vsftpd restart
      2.500 OOPS: bad bool value in config file for: write_enable
      注意你的CentOS FTP服务文件中保证每一行最后没有任何空格,一般出错就是在多余的空格上。
      这些知识大家都学会了吗?活到老,学到老,想要学习更多知识点,那还等什么,课课家教育等着您!小编带你在知识的海洋里遨游!

课课家教育

未登录