zoukankan      html  css  js  c++  java
  • VSFTP+MySQL虚拟用户配置

    1. VSFTPMySQL虚拟用户配置
    2. 1 安装vsftp软件
    3. 下载vsftp(最新版本)软件: wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.1.0.tar.gz
    4. 如果要开始ssl功能的话,安装vsftp之前要先安装openssl-0.9.8g.tar.gz
    5. [root@server2 ftp]# tar xzvf openssl-0.9.8g.tar.gz
    6. [root@server2 ftp]# cd openssl-0.9.8g
    7. [root@server2 openssl-0.9.8g]# ./config
    8. [root@server2 openssl-0.9.8g]# make && make install
    9. 安装vsftp
    10. [root@server2 ftp]# tar xzvf vsftpd-2.1.0.tar.gz
    11. [root@server2 ftp]# cd vsftpd-2.1.0
    12. [root@server2 vsftpd-2.1.0]# vi builddefs.h
    13. #ifndef VSF_BUILDDEFS_H
    14. #define VSF_BUILDDEFS_H
    15. #undef VSF_BUILD_TCPWRAPPERS
    16. #define VSF_BUILD_PAM
    17. #undef VSF_BUILD_SSL
    18. #endif /* VSF_BUILDDEFS_H */
    19. undef都更改成define,支持tcp_wrappers,支持PAM认证方式,支持SSL
    20. 不知道为什么用2.10.0版本的时候make的时候老是出现:
    21. ssl.o(.text+0x760): In function `ssl_cert_digest':
    22. : undefined reference to `EVP_sha256'
    23. collect2: ld returned 1 exit status
    24. make: *** [vsftpd] Error 1
    25. 所以换成2.0.3版本!
    26. [root@server2 vsftpd-2.0.3]# make
    27. [root@server2 vsftpd-2.0.3]# ls -l vsftpd
    28. -rwxr-xr-x 1 root root 85932 Mar 23 14:53 vsftpd //可执行程序安装成功
    29. 创建必要的帐号,目录:
    30. # useradd nobody //可能你的系统已经存在此帐号,那就不用建立
    31. # mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
    32. # mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
    33. # useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
    34. # chown root:root /var/ftp
    35. # chmod og-w /var/ftp
    36. 请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin
    37. 安装vsftp配置文件,可执行程序,man等:
    38. # install -m 755 vsftpd /usr/local/sbin/vsftpd
    39. # install -m 644 vsftpd.8 /usr/share/man/man8
    40. # install -m 644 vsftpd.conf.5 /usr/share/man/man5
    41. # install -m 644 vsftpd.conf /etc/vsftpd.conf
    42. 这样vsftp的安装就完成了
    43. 2、 安装mysql数据库,并进行相关的设置
    44. Mysql的安装就不说了,这里只说明对mysql数据库的相关操作:
    45. (1) 建立一个库并设置相应权限
    46. [root@server2 vsftpd-2.0.3]# mysql –uroot
    47. mysql>create database ftpd;
    48. mysql>use ftpd;
    49. mysql>create table user(name char(20) binary,passwd char(20) binary);
    50. mysql>insert into user (name,passwd) values ('zhang1','123456');
    51. mysql>insert into user (name,passwd) values ('zhang2','654321');
    52. mysql>grant select on ftpd.user to ftpd@localhost identified by '123456';
    53. mysql>flush privileges; 刷新权限设置
    54. mysql>quit
    55. (2) 测试ftpd对数据库的权限是否OK!
    56. 3、 下载、安装、编译pam-mysql
    57. http://nchc.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.5.tar.gz
    58. [root@server2 ftp]# tar xzvf pam_mysql-0.5.tar.gz
    59. [root@server2 ftp]# cd pam_mysql
    60. [root@server2 pam_mysql]# cp pam_mysql.so /lib/security/
    61. 4、 建立PAM认证信息
    62. vi /etc/pam.d/ftp ,内容如下
    63. auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0
    64. account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0
    65. 注意:
    66. crypt= n
    67. crypt=0: 明文密码
    68. crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
    69. crypt=2: 使用MYSQL中的password()函数加密
    70. crypt=3:表示使用md5的散列方式
    71. 5、 建立本地虚拟用户:
    72. useradd -d /home/ftpd -s /sbin/nologin ftpd
    73. 6、 修改配置文件:
    74. anonymous_enable=NO
    75. local_enable=YES
    76. write_enable=YES
    77. local_umask=022
    78. anon_upload_enable=YES
    79. anon_mkdir_write_enable=YES
    80. anon_other_write_enable=YES
    81. chroot_local_user=YES
    82. guest_enable=YES
    83. guest_username=ftpd
    84. listen=YES
    85. listen_port=21
    86. pasv_enable=YES
    87. pasv_min_port=30000
    88. pasv_max_port=30999
    89. anon_world_readable_only=NO
    90. virtual_use_local_privs=YES
    91. 7、 启动vsftpd
    92. /usr/local/sbin/vsftpd /etc/vsftpd.conf & //后台运行!
    93. 8、 Test
    94. [root@server2 vsftpd-2.0.3]# ftp 127.0.0.1
    95. Connected to 127.0.0.1.
    96. 220 (vsFTPd 2.0.3)
    97. 530 Please login with USER and PASS.
    98. 530 Please login with USER and PASS.
    99. KERBEROS_V4 rejected as an authentication type
    100. Name (127.0.0.1:root): zhang1
    101. 331 Please specify the password.
    102. Password:
    103. 230 Login successful. \已经登录成功了!
    104. Remote system type is UNIX.
    105. Using binary mode to transfer files.
    106. ftp> quit
    107. 221 Goodbye.





  • 相关阅读:
    php 建立类POST/GET 的HTTP请求
    上传文件
    golang精选100题带答案
    go面试
    golang反射
    go语言中type的几种使用
    写个版本迭代的方法 例如1.0.9 迭代为1.1.0 到10自动往前进1
    压缩文件和解压文件
    go语言中的文件创建,写入,读取,删除
    go面试题
  • 原文地址:https://www.cnblogs.com/gyming/p/5781451.html
Copyright © 2011-2022 走看看