分类: LINUX
2008-09-20 10:21:33
FTP服务器
一、 FTP服务器的安装和简单配置
1. 安装vsftpd(RHEL4第一张光盘)
#cd /media/cdrom/RedHat/RPMS/
#rpm –ivh vsftp-2.0.1-5.i386.rpm
Vsftpd.conf文件是vsftpd服务器的主配置文件,位于“/etc/vsftpd/”中
#grep –v ‘#’ vsftpd/vsftpd.conf
(查看配置文件中去除注释行的内容)
2.Vsftpd.ftpusers文件位于“/etc/”中,用于保存不允许进行FTP登录的本地用户账号(包括root),不是普通用户,而是系统中具有较高权限的账号。
Vsftpd.user_list文件位于”/etc/”中,与vsftpd.ftpusers文件类似的访问控制。
2. 匿名用户登录目录,将进入“/var/ftp”中
/var/ftp目录中默认有1个名为pub的子目录,可在该目录中建立新的目录和保存文件提供给匿名用户下载。
3. vsftpd的启动脚本位于“/etc/init.d/”中
#ls –l /etc/init.d/vsftpd*
Vsftpd软件包安装后并没有设置vsftpd服务在系统中运行,使用chkconfig设置
#chkconfig –list vsftpd
#chkconfig –level 2345 vsftpd on
#service vsftpd restart
二、 配置FTP服务器的虚拟用户
1. vsftp中的用户类型
匿名:是名为anonymous或ftp的FTP用户,用于提供公共文件的下载。
本地:是FTP服务器中的系统用户账号,
虚拟:为了保证FTP服务器的安全性,由vsftp服务器提供的非系统账号,
2. 创建的过程
a) 建立虚拟用户口令库文件
# vi song.txt
Hello
123
Good
456
:wq (奇数行为用户名,偶数行为密码)
b) 生成vsftpd的认证文件
使用db_load命令生成认证文件,“-f”虚拟用户的口令库文件。命令的参数设置为需要生成的认真文件名vsftp_song.db,保存在目录“/etc/vsftpd/”中。
#db_load –T –t hash –f song.txt /etc/vsftpd/vsftpd_song.db(和上行在同一行)
#file /etc/vsftpd/vsftpd_song.db
Vsftpd_song.db文件的权限应设置为只对root可读写,即600.
#chmod 600 /etc/vsftpd/vsftpd_song.db
c) 建立虚拟用户所需要的PAM配置文件
在“/etc/pam.d/”中建立vsftpd虚拟用户身份认证所需的PAM配置文件,名称是vsftpd.vu
#vi /etc/pam.d/vsftpd.vu
Auth requited /lib/security/pam_userdb.so db=/etc/vsfptd/vsfptd_song(和上行在同一行)
Account requited /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_song(和上行在同一行)
d) 建立虚拟用户及要访问的目录并设置相应的权限
建立vsftpd虚拟用户所需的系统用户账号,名称为song,指定用户的宿主目录是“/home/ftpsite/”,设置宿主目录的权限750
#useradd –d /home/ftpsite song
#chmod 750 /home/ftpsite
Vsftpd服务器的所有虚拟用户账号登录后都将在“/home/ftpsite/”目录中。
e)设置vsftpd.conf配置文件
在修改vsftpd.conf前,应将原有文件进行备份,以便配置出错可进行恢复。
#cd /etc/vsftpd
#cp vsftpd.conf vsftpd.conf.bak
在vsftpd.conf文件中添加虚拟用户的配置项,
#vi /etc/vsftpd/vsftpd.conf
Guest_enable=YES
Guest_username=song
Pam_service_name=vsftpd.vu
(也可能有一项在主配置文件中已经存在,可去掉)
f)在对vsftpd.conf配置文件任何修改后都需要重新启动vsfptd服务,以便配置文件生效。
#service vsftpd restart
g)测试vsftpd中的虚拟用户账号
测试前应先在“/home/ftpsite/”中建立测试文件,用于测试时进行下载,并设置文件的属猪和属组为song.
#touch /home/ftpsite/hello
#chown song.song /home/ftpsite/hello
使用ftp登录vsftpd服务器,使用虚拟用户good登录。使用 get put pwd dir 命令测试
h)对不同虚拟用户设置不同的权限
设置主配置文件,添加user_config_dir项,并设置用户配置文件的保存目录。
#vi /etc/vsftpd/vsftpd.conf
User_config_dir=/etc/vsftpd_user_conf
在“/etc/vsftpd_user_conf”目录中保存虚拟用户的配置文件。
建立用户配置文件目录
#mkdir /etc/vsftpd_user_conf
为虚拟用户建立单独的配置文件,在“/etc/vsfptd_user_conf/”中可为每个虚拟用户建立独立的配置文件,配置文件名称和用户名称相同。
#touch /etc/vsftpd_user_conf/hello
#vi /etc/vsftpd_user_conf/hello
本章总结
FTP协议的基本原理
FTP服务器使用21端口与FTP客户机建立连接,使用20端口进行数据传输。
FTP服务器有主动和被动两种数据传说模式
Vsftpd 服务器的基本配置管理
Vsfptd服务器的主配置文件vsftpd.conf,vsftpd.ftpusers和vsftpd.user_list文件可用于进行用户访问控制。
Vsftpd默认提供匿名和本地用户登录。
Vsftpd服务器可以对ftp客户端连接数和数据传输速率进行控制。