redhat5.8+pam+mysql+vsftp

  vsftpd是目前在linux系统环境下表现最为优越的安全,稳定,快速的性能,加上vsftpd的可读性强、易配置,受到更为广泛的应用。vsftpd有三种实现的形式,分别为:

  1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问;

  2.本地用户形式:以/etc/passwd中的用户名为认证方式;

  3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。

  这次运用第三种虚拟用户形式在数据库中保存vsftp的登陆的账号和密码。用pam验证登陆

  1.安装pam_mysql-0.7RC1.tar.gz

  # tar xfpam_mysql-0.7RC1.tar.gz

  # cd pam_mysql-0.7RC1

  # ./configure–with-openssl

  # make && makeinstall        #如果报错,安装mysql-devel

  # ls /usr/lib/security/

  classpath.securitypam_mysql.la pam_mysql.so

  # ln -s/usr/lib/security/pam_mysql.so /lib/security/pam_mysql.so

  2.创建一个必要的本地用户虽说是虚拟用户,不过,由于虚拟用户的信息存储在MySQL数据库中,所以还是需要一个能够读取MySQL数据库的本地用户.

  # useradd -s/sbin/nologin virtual

  # mysql -u root -p

  Enter password:

  mysql> CREATE DATABASEvsftpd;

  Query OK, 1 row affected(0.02 sec)

  mysql> USE vsftpd;

  Database changed

  3.创建用于存储虚拟用户信息的表users

  mysql> CREATE TABLEusers (username varchar(20) NOT NULL,password varchar(40) NOT NULL,PRIMARY KEY(username)) TYPE=MyISAM;

  Query OK, 0 rows affected,1 warning (0.01 sec)

  4.让本地用户virtual能读取vsftpd数据库的users表的内容

  mysql> grant selecton vsftpd.users to virtual@localhost identified by '123456';

  Query OK, 0 rowsaffected (0.00 sec)

  mysql> flushprivileges;

  Query OK, 0 rowsaffected (0.00 sec)

  5.建立虚拟用户

  mysql> insert intousers values ('vu1','123');

  Query OK, 1 row affected(0.00 sec)

  mysql> insert intousers values ('vu2','123');

  Query OK, 1 row affected(0.00 sec)

  mysql> insert intousers values ('vu3','123');

  Query OK, 1 row affected(0.00 sec)

  mysql> quit

  Bye

  6.配置vsftpd的PAM验证

  # vim/etc/pam.d/vsftpd_mysql

  auth requiredpam_mysql.so user=virtual passwd=123456 host=localhost db=vsftpd table=usersusercolumn=username passwdcolumn=password crypt=0

  account requiredpam_mysql.so user=virtual passwd=123456 host=localhost db=vsftpd table=usersusercolumn=username passwdcolumn=password crypt=0

  7.配置ftp,/etc/vsftpd/vsftpd.conf

  pam_service_name=vsftpd_mysql#pam_service_name=vsftpd_mysql  要与/etc/pam.d/配置文件的文件名相同

  guest_enable=YES               #guest_enable=YES 开启虚拟用户功能

  guest_username=virtual            #guest_username=virtual 指定虚拟用户使用的系统用户

  virtual_use_local_privs=YES       #virtual_use_local_privs 为虚拟用户设置不同权限设置为 YES 时,虚拟用户使用与本地用相同权限设置为 NO 时,虚拟用户使用与匿名用户相同权限

  可以到 百度云盘下载 账号 pankuo1@sina.cn密码pk492940446

 

发表评论

邮箱地址不会被公开。 必填项已用*标注