试验环境为
RHEL5.4
1.
配置
yum
客户端使用本地源
#mkdir /media/cdrom
#mount /dev/cdrom /media/cdrom
#vim /etc/yum.repos.d/rhel-debuginfo.repo
写入下面内容:
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///media/cdrom/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
配置本地
ip
地址:
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改为下面内容:
DEVICE=eth0
BOOTPROTO=none
NBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.1
TYPE=Ethernet
保存退出
#service network restart
2.
配置
mysql
服务
#yum install mysql-server
#chkconfig mysqld on
#service mysqld start
3.
配置
pam_mysql
默认系统不提供该服务支持,可以去网上搜索下载
部署源代码包编译环境:
#yum install gcc gcc-c++ pam-devel mysql-devel
# tar -zxvf pam_mysql-0.7RC1.tar.gz -C /usr/local/src/
# cd /usr/local/src/pam_mysql-0.7RC1/
#./configure
#make;make install
# cp /usr/lib/security/pam_mysql.so /lib/security/
4.
建立虚拟用户
#useradd �Cd /home/ftp �Cs /sbin/nologin virtual
5.
建立认证
利用
mysql
建立用户,将用户名和密码都放在
mysql
数据库内
#mysql �Cu root �Cp
mysql>create database ftpusers;
mysql> create database ftpusers;
mysql> use ftpusers
mysql> create table user(name char(20) binary,password char(20) binary);
mysql> insert into user (name,password) values ('abc','123');
mysql> insert into user (name,password) values ('xyz','123');
mysql> grant select on ftpusers.user to virtual@localhost identified by '123';
mysql> flush privileges;
mysql> quit
建立
pam
认证文件:
#vim /etc/pam.d/ftp
写入下面内容:
auth required /lib/security/pam_mysql.so user=virtual passwd=123 host=localhost db=ftpusers table=user usercolumn=name passwdcolumn=password crypt=0
account required /lib/security/pam_mysql.so user=virtual passwd=123 host=localhost db=ftpusers table=user usercolumn=name passwdcolumn=password crypt=0
注意:
crypt= n
crypt=0:
明文密码
crypt=1:
使用
crpyt()
函数
(
对应
SQL
数据里的
encrypt()
,
encrypt()
随机产生
salt)
crypt=2:
使用
MYSQL
中的
password()
函数加密
crypt=3
:表示使用
md5
的散列方式
6.
配置
vsftp
#yum install vsftpd
#vim /etc/vsftpd/vsftpd.conf
末尾加入下面内容:
pam_service_name=ftp
guest_enable=YES
guest_username=virtual
如果开启了
selinux
要打开
ftpd
连接数据库的
seboool
值
#setsebool -P ftpd_connect_db on
7.
客户端验证即可。
本文出自 “RHEL5” 博客,转载请与作者联系!