系统:Redhat Enterprise AS 5
软件:samba-3.0.23c-2
samba-client-3.0.23c-2
samba-common-3.0.23c-2
vsftpd-2.0.5-10.el5
db4-utils-4.3.29-9.fc6
目的:一台有双网卡的机子,对外的网卡通过vsftpd提供FTP服务,对内的网卡通过samba对FTP上传的资料共享给公司内部员工访问。

1、查看是否装了以上所需的软件

[root@Wang ~]# rpm -qa | grep samba
samba-3.0.23c-2
samba-client-3.0.23c-2
samba-common-3.0.23c-2

[root@Wang ~]# rpm -qa | grep vsftpd
vsftpd-2.0.5-10.el5

[root@Wang ~]# rpm -qa | grep db4-utils
db4-utils-4.3.29-9.fc6

2、配置vsftpd服务

2.1 检查并安装vsftpd软件
[root@Wang ~]# rpm -qa | grep vsftpd
vsftpd-2.0.5-10.el5      如果这里显示空白,说明软件还没有安装
[root@Wang ~]# rpm -ivh vsftpdvsftpd-2.0.5-10.el5
2.2 建立虚拟账号口令库文件
#cd //返回root目录
#vi logins.txt
添加以下用户:
kd   //用户名
kd   //密码
xy
xy
jfr
jfr
wangbo
wangbo
:wd   //保存并退出
2.3 生成vsftpd的数据库文件
#cd   2.1 检查并安装vsftpd软件
#db_load -T -t hash -f logins.txt /etc/vsftpd_login.db    //生成数据库文件
#chmod 600 /etc/vsftpd_login.db
2.4 建立虚拟用户所需的PAM配置文件
[root@Wang ~]# vi /etc/pam.d/vsftpd
#%PAM-1.0
auth        required    /lib/security/pam_userdb.so db=/etc/vsftpd_login    //新添加这一行
account     required    /lib/security/pam_userdb.so db=/etc/vsftpd_login //新添加这一行
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     system-auth
#account    include     system-auth
#session    include     system-auth
#session    required     pam_loginuid.so
:wq //保存并退出
2.4 建立虚拟用户及所需要访问的目录,并设置权限
[root@Wang ~]# useradd -d /var/ftp/share/ -s /sbin/nologin virtual
[root@Wang ~]# mkdir /var/ftp/share
[root@Wang ~]# chmod 700 /var/ftp/share
2.5 配置vsftpd.conf文件
[root@Wang ~]# vi /etc/vsftpd/vsftpd.conf
增加:
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/user_config_dir
pam_service_name=vsftpd
其他配置根据需要设定
2.6 建立user_config_dir文件目录,并创建以用户名命名的配置文件
[root@Wang ~]# mkdir /etc/vsftpd/user_config_dir/
[root@Wang user_config_dir]# vi /etc/vsftpd/user_config_dir/kd
anon_world_readable_only=NO //具有浏览权限
anon_upload_enable=YES     //具有下载权限
anon_other_write_enable=YES     //具有删除权限
anon_mkdir_write_enable=YES    //具有创建目录权限
local_root=/var/ftp/share/kd    //指定用户登陆的默认路径
write_enable=YES   //具有上传权限
2.7 重启服务并测试登陆
[root@Wang user_config_dir]# service vsftpd restart
关闭 vsftpd:                                              [确定]
为 vsftpd 启动 vsftpd:                               [确定]
[root@Wang user_config_dir]# chkconfig --level 3 vsftpd on //vsftpd服务在字符下自动启动
[root@Wang user_config_dir]# ftp 192.168.0.197
Connected to 192.168.0.197.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.197:root): kd
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
3、配置samba服务
3.1 检查并安装samba软件
[root@Wang ~]# rpm -qa | grep samba
samba-3.0.23c-2
samba-client-3.0.23c-2
samba-common-3.0.23c-2
如果显示空白,放入光盘安装以上所需软件
3.2 配置smb.conf文件
[root@Wang ~]# vi /etc/samba/smb.conf
[global]
workgroup = MYGROUP   //设置工作组
security = share     //访问方式为share,任何人都能访问共享文件夹
[share]    共享名
comment = Ftp' s directory  
path = /var/ftp/share
public = yes
writable = yes
:wq 保存并退出
3.3 重启服务并测试访问
[root@Wang ~]# service smb restart
关闭 SMB 服务:                                            [确定]
关闭 NMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
启动 NMB 服务:                                            [确定]
[root@Wang ~]# smbclient -L \\192.168.0.197
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.23c-2]

Sharename       Type      Comment
---------       ----      -------
share           Disk      Ftp's directory
IPC$            IPC       IPC Service (Samba Server)
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.23c-2]

Server               Comment
---------            -------
WANG                 Samba Server

Workgroup            Master
---------            -------
MYGROUP   
4、成功配置如图所示
总结:通过上面的配置,公司人员就可以通过\\192.168.0.197方式访问到外网客户通过FTP上传上来的资料。。。