vsftpd配置系统用户为登陆用户

来源:互联网 发布:装修公司设计软件 编辑:程序博客网 时间:2024/06/05 08:00

1.安装vsftpd

安装依赖包:
  1. yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl
新建vsftpd系统用户:
  1. useradd vsftpd -s /sbin/nologin
安装vsftpd
  1. yum -y install vsftpd

2.配置vsftpd

  1. cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

2.1 修改vsftpd.conf配置文件

主要是下面的一些配置:
  1. #
  2. local_enable=YES
  3. write_enable=YES
  4. local_umask=022
  5. dirmessage_enable=YES
  6. xferlog_std_format=YES
  7. listen=YES
  8. tcp_wrappers=YES
  9. hide_ids=YES
  10. #
  11. anonymous_enable=NO #设定不允许匿名访问
  12. anon_upload_enable=NO #禁止匿名用户上传
  13. anon_mkdir_write_enable=NO #禁止匿名用户建立目录
  14. dirmessage_enable=YES #设定开启目录标语功能
  15. xferlog_enable=YES #设定开启日志记录功能
  16. connect_from_port_20=YES #设定端口20进行数据连接
  17. chown_uploads=NO #设定禁止上传文件更改宿主
  18. xferlog_file=/var/log/vsftpd.log #设定Vsftpd的服务日志保存路径
  19. ftpd_banner="Welcome to FTP Server!" #设定Vsftpd的登陆标语。
  20. chroot_local_user=YES #限制用户在自己的家目录之内
  21. chroot_list_enable=YES #启用不被chroot的使用者账号
  22. chroot_list_file=/etc/vsftpd/chroot_list #不被chroot的使用者账号的列表文件
  23. user_config_dir=/etc/vsftpd/vsftpd_user_conf
  24. #针对不同的用户做不同的配置,这个目录下都是以用户名作为文件名
  25. # 限制某些用户的访问
  26. userlist_file=/etc/vsftpd/user_list
  27. userlist_deny=YES
  28. userlist_enable=YES
  29. #认证配置
  30. pam_service_name=vsftpd
  31. pam_service_name=/etc/pam.d/vsftpd
新建chroot_list文件:
  1. touch /etc/vsftpd/chroot_list
文件里面是可以chroot的用户,最好设置为空,这样所有用户都不能chroot了,更加安全。
建立用户配置目录:
  1. mkdir /etc/vsftpd/vsftpd_user_conf

2.2 用户个性化配置

编辑每个用户的个性化配置,主要是用户的主目录
  1. #vim /etc/vsftpd/vsftpd_user_conf/apple
  2. local_root=/home/apple/ftp
在配置之前最好把这个文件夹建立好。
  1. mkdir /home/apple/ftp
我们新建三个用户:apple,windows,google进行测试。

2.3 pam认证文件

本地用户验证需要用到pam文件,内容使用默认配置即可,这个文件在安装vsftpd时自动生成。

 路径在/etc/pam.d/vsftpd。我们可以看一下内容:
  1. #%PAM-1.0
  2. session optional pam_keyinit.so force revoke
  3. auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
  4. auth required pam_shells.so
  5. auth include password-auth
  6. account include password-auth
  7. session required pam_loginuid.so
  8. session include password-auth

3.登录测试

启动vsftpd服务
  1. service vsftpd start
登录测试

 可以看到,配置已经生效。apple可以正常登陆,但是不能切换到它的上级目录,保证安全性。

4.脚本自动化

4.1 自动化安装

  1. #!/bin/bash
  2. #date:2017-05-25
  3. #version:0.0.1
  4. echo \>\>\> 1. `date "+%Y-%m-%d-%H:%M:%S"` We will start vsftpd install
  5. yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl vsftpd
  6. echo -e \>\>\> 2. `date "+%Y-%m-%d-%H:%M:%S"` "the vsftpd is already installed.
  7. >>> we will start configure the vsftpd.conf"
  8. cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
  9. sed -i '/^[^#]/s/^/#/g' vsftpd.conf
  10. #开始配置vsftpd.conf文件
  11. echo "
  12. #
  13. local_enable=YES
  14. write_enable=YES
  15. local_umask=022
  16. dirmessage_enable=YES
  17. xferlog_std_format=YES
  18. listen=YES
  19. tcp_wrappers=YES
  20. hide_ids=YES
  21. #
  22. ##the conf is for vsftpd
  23. anonymous_enable=NO
  24. #设定不允许匿名访问
  25. anon_upload_enable=NO
  26. #禁止匿名用户上传
  27. anon_mkdir_write_enable=NO
  28. #禁止匿名用户建立目录
  29. dirmessage_enable=YES
  30. #设定开启目录标语功能
  31. xferlog_enable=YES
  32. #设定开启日志记录功能
  33. connect_from_port_20=YES
  34. #设定端口20进行数据连接
  35. chown_uploads=NO
  36. #设定禁止上传文件更改宿主
  37. xferlog_file=/var/log/vsftpd.log
  38. #设定Vsftpd的服务日志保存路径
  39. chroot_local_user=YES
  40. #限制用户在自己的家目录之内
  41. chroot_list_enable=YES
  42. #启用不被chroot的使用者账号
  43. chroot_list_file=/etc/vsftpd/chroot_list
  44. #不被chroot的使用者账号的列表文件
  45. user_config_dir=/etc/vsftpd/vsftpd_user_conf
  46. #针对不同的用户做不同的配置,这个目录下都是以用户名作为文件名
  47. # 限制某些用户的访问
  48. userlist_file=/etc/vsftpd/user_list
  49. userlist_deny=YES
  50. userlist_enable=YES
  51. #认证配置
  52. pam_service_name=vsftpd
  53. pam_service_name=/etc/pam.d/vsftpd" >> /etc/vsftpd/vsftpd.conf
  54. touch /etc/vsftpd/chroot_list
  55. mkdir /etc/vsftpd/vsftpd_user_conf
  56. echo "local_root=/home/username/ftp" > /etc/vsftpd/vsftpd_user_conf/default
  57. #
  58. echo -e 3. `date "+%Y-%m-%d-%H:%M:%S"` "The configure of vsftpd is over.\n"

4.2 新增用户

新增用户之后,如果直接用用户名密码登录,进去的是用户的家目录。这个时候可以设置用户的ftp主目录为/home/$username/ftp,脚本如下:
  1. #!/bin/bash
  2. #date:2017-05-25
  3. #version:0.0.1
  4. if read -t 5 -p "Please enter you name:" username
  5. then
  6. if id $username && [ -d /home/$username ] #判断用户和用户家目录是否存在
  7. then
  8. mkdir -p /home/$username/ftp
  9. cp /etc/vsftpd/vsftpd_user_conf/default /etc/vsftpd/vsftpd_user_conf/$username
  10. sed -i s/username/$username/g /etc/vsftpd/vsftpd_user_conf/$username
  11. echo "The config is over."
  12. else
  13. echo "The $username is not exists or the $username home is not exists."
  14. fi
  15. else
  16. echo -e "\nthe 5s is pass, you are to slow! "
  17. fi

原创粉丝点击