设为首页 收藏本站
查看: 1289|回复: 0

[经验分享] Ubuntu 下ftp服务器的安装配置

[复制链接]

尚未签到

发表于 2018-5-3 11:47:37 | 显示全部楼层 |阅读模式
  FTP服务器是平时应用最为广泛的服务之一。VSFTP是Very SecureFTP的缩写,意指非常安全的FTP服务。VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务。
  首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有:
  1、如何添加FTP用户?
  2、如何临时冻结某FTP用户?
  3、FTP用户登入后的默认目录?是否可以改变?
  4、如何锁定FTP用户可访问的目录范围?
  5、FTP用户可以有哪些访问权限?可否上传文件?
  我们将带着这些问题来探讨如何配置VSFTP以达到预定目标。
  一、主要配置选项
  VSFTP的主配置文件是/etc/vsftpd.conf。由于可配置的选项实在太多,无法一一详谈,只能截取比较常用的功能配置选项来加以说明。完整说明可参考manvsftpd.conf。
  这里需要注意的是,每个配置选项都是由“配置项目名称=配置值“所定义。在每个配置变量后,要紧跟等号,再紧跟设置的变量值。中间不允许出现空格之类的分隔符,否则导致配置错误,无法生效!
  另外,如果需要开通上传功能,则应注意用来登录FTP的本地系统用户对要操作的目录需要具备写权限,否则无法上传文件!
  版本vsftpd: version 2.0.6
  启动VSFTPD:sudo /etc/init.d/vsftpd start
  停止VSFTPD:sudo /etc/init.d/vsftpd stop
  重启VSFTPD:sudo /etc/init.d/vsftpd restart
  以下为常用的配置选项:
  1、listen=YES
  若设置为YES,开启监听网络。
  2、anonymous_enable
  若设置为YES,则允许匿名用户访问;若设置为NO则拒绝匿名用户访问。
  如果开启的话,则可以通过用户名ftp或者anonymous来访问,密码随便。
  3、local_enable
  若设置为YES,则允许通过本地用户帐号访问;若设置为NO,则拒绝本地用户帐号访问。如果你拒绝了陌生人访问,那么这个必须设置为YES吧,否则谁能访问你的FTP呢?
  4、write_enable
  若设置为YES,则开启FTP全局的写权限;若设置为NO,则不开。
  若为NO则所有FTP用户都无法写入,包括无法新建、修改、删除文件、目录等操作,也就是说用户都没办法上传文件!!
  5、anon_upload_enable
  若设置为YES,开启匿名用户的上传权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。若设置为NO,则关闭匿名用户的上传权限。
  6、anon_mkdir_write_enable
  若设置为YES,开启匿名用户新建目录的权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。若设置为NO,则关闭匿名用户新建目录的权限。
  7、dirmessage_enable
  若设置为YES,则可开启目录信息推送,也就是用户登录FTP后可以列出当前目录底下的文件、目录。 这个应该要开启吧!
  8、xferlog_enable
  若设置为YES,则开启登录、上传、下载等事件的日志功能。应开启!
  9、xferlog_file=/var/log/vsftpd.log
  指定默认的日志文件,可指定为其他文件。
  10、xferlog_std_format
  若设置为YES,则启用标准的ftpd日志格式。可以不启用。
  11、connect_from_port_20
  若设置为YES,则服务器的端口设为20。
  如果不想用端口20,可以另外通过ftp_data_port来指定端口号。
  12、chown_uploads
  若设置为YES,则匿名用户上传文件后系统将自动修改文件的所有者。
  若要开启,则chown_username=whoever也需指定具体的某个用户,用来作为匿名用户上传文件后的所有者。
  13、idle_session_timeout=600
  不活动用户的超时时间,超过这个时间则中断连接。
  14、data_connection_timeout=120
  数据连接超时时间 。
  15、ftpd_banner=Welcome to blah FTPservice.
  FTP用户登入时显示的信息 。
  16、local_root=/home/ftp
  指定一个目录,用做在每个本地系统用户登录后的默认目录。
  17、anon_root=/home/ftp
  指定一个目录,用做匿名用户登录后的默认目录。
  18、chroot_local_user、 chroot_list_enable、chroot_list_file
  这个组合用于指示用户可否切换到默认目录以外的目录。
  其中,chroot_list_file默认是/etc/vsftpd.chroot_list,该文件定义一个用户列表。
  若chroot_local_user设置为NO,chroot_list_enable设置为NO,则所有用户都是可以切换到默认目录以外的。
  若chroot_local_user设置为YES,chroot_list_enable设置为NO,则锁定FTP登录用户只能在其默认目录活动,不允许切换到默认目录以外。
  若chroot_local_user设置为YES,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动。
  若chroot_local_user设置为NO,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都被限定在各自的默认目录活动,而列表以外的用户则可以访问默认目录以外的目录。
  建议设置:chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!
  好处:所有人都被限制在特定的目录里面。如果某些特定用户需要访问其他目录的权限,只需将其用户名写入chroot_list_file文件就可以赋予其访问其他目录的权限!
  19、userlist_file、userlist_enable、userlist_deny
  这个组合用于指示用户可否访问FTP服务。
  其中,userlist_file默认是/etc/vsftpd.user_list,该文件定义一个用户列表。
  若userlist_enable设置为YES,userlist_deny设置为NO,则只有userlist_file所指定的文件里面的用户列表里面的用户可以访问FTP。
  若userlist_enable设置为YES,userlist_deny设置为YES,则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。
  若userlist_enable设置为NO,userlist_deny设置为YES,则这个列表没有实际用处,起不到限制的作用!因为所有用户都可访问FTP。
  建议设置:userlist_enable与userlist_deny都设置为YES。这样则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。
  好处:只需将某用户帐号加入到userlist_file所指定文件里面的用户列表,就可以起到暂时冻结该用户的功能!
  20、user_config_dir
  指定一个目录用于存放针对每个用户各自的配置文件,比如用户kkk登录后,会以该用户名建立一个对应的配置文件。
  比如指定user_config_dir=/etc/vsftpd_user_conf,则kkk登录后会产生一个/etc/vsftpd_user_conf/kkk的文件,这个文件保存的配置都是针对kkk这个用户的。可以修改这个文件而不用担心影响到其他用户的配置。
  二、我的VSFTP的配置方案
  #首先要安装VSFTP。源码编译或软件包安装都可以。
  #以下方案实现以下功能:
  #1、锁定用户在/home/ftp默认目录活动,
  # 并保留/etc/vsftpd.chroot_list文件里面的用户列表可访问其他目录。
  #2、具备暂时冻结FTP用户的功能,将需暂停的用户名加入到/etc/vsftpd.usr_list即可。
  #
  #设置配置文件:
  #复制以下文件并保存为/etc/vsftpd.conf
  #新建两文件:touch /etc/vsftpd.chroot_list
  # touch /etc/vsftpd.user_list
  #新建目录:mkdir /home/ftp
  #新建群组:addgroup ftp
  #修改/home/ftp属性:chown ftp:ftp /home/ftp
  #新增FTP用户: adduser --shell /bin/false --home /home/ftpyour_usr_name
  #把需要开通FTP的用户名加入到ftp群组:usermod -aG ftp your_usr_name
  #注意:
  #如果你的/etc/shells里面没有包含/bin/false,则你用上述的方法建立的用户将法访问#FTP,解决方法:编辑/etc/shells,加入/bin/false这行。
  #
  # Example config file /etc/vsftpd.conf
  listen=YES
  #listen_ipv6=YES
  anonymous_enable=YES
  local_enable=YES
  write_enable=YES
  #anon_upload_enable=YES
  #anon_mkdir_write_enable=YES
  dirmessage_enable=YES
  xferlog_enable=YES
  connect_from_port_20=YES
  #chown_uploads=YES
  #chown_username=whoever
  #xferlog_file=/var/log/vsftpd.log
  #xferlog_std_format=YES
  #idle_session_timeout=600
  #data_connection_timeout=120
  #nopriv_user=ftpsecure
  #async_abor_enable=YES
  #ascii_upload_enable=YES
  #ascii_download_enable=YES
  #ftpd_banner=Welcome to blah FTPservice.
  #deny_email_enable=YES
  #banned_email_file=/etc/vsftpd.banned_emails
  chroot_local_user=YES
  chroot_list_enable=YES
  chroot_list_file=/etc/vsftpd.chroot_list
  #ls_recurse_enable=YES
  secure_chroot_dir=/var/run/vsftpd
  pam_service_name=vsftpd
  rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
  rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
  anon_root=/home/ftp
  local_root=/home/ftp
  userlist_file=/etc/vsftpd.user_list
  userlist_enable=YES
  userlist_deny=YES
  三、回答前面提到的问题
  1、如何添加FTP用户?
  设置local_enable为YES可以开放系统用户访问FTP。
  在系统里面添加用户,将shell设置为/bin/false,并将其家目录若设置为/home/ftp或者其他目录。这样就可以建立只访问FTP而无法登录shell环境的用户。
  注意:可以新建一个ftp组,把/home/ftp的所有者设为ftp,群组也设为ftp。然后所有新添加的FTP用户只需加入到FTP群组就可以具有对/home/ftp的访问权限了。这样也方便管理用户量比较大的FTP系统。如:
  sudo addgroup ftp #如果有了就不用添加
  sudo chown ftp:ftp /home/ftp #如果改过了就不用再改
  sudo adduser --shell /bin/false --home /home/ftp user1#添加用户user1
  sudo usermod  -aG ftp user1  #把用户user1加入到ftp组
  这样便可以通过用户名user1来访问FTP服务了。
  2、如何临时冻结某FTP用户?
  将userlist_enable与userlist_deny都设置为YES。这样userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。只需将某用户帐号加入到userlist_file所指定文件里面的用户列表,就可以起到暂时冻结该用户的功能!如需重新开通使用权限,则只需从该文件中去掉相应的用户名。
  3、FTP用户登入后的默认目录?是否可以改变?
  可以通过local_root、anon_root来指定相应的默认目录。
  4、如何锁定FTP用户可访问的目录范围?
  将chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!如果某些特定用户需要访问其他目录的权限,只需将其用户名写入chroot_list_file文件就可以赋予其访问其他目录的权限!
  5、FTP用户可以有哪些访问权限?可否上传文件?
  设置write_enable可以开启全局的写权限。这样FTP用户就可以在本地帐号管理系统允许的范围内进行写操作了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-455317-1-1.html 上篇帖子: U盘安装Ubuntu系统 下篇帖子: ubuntu 手动dpkg安装 新内核
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表