Chinaunix首页 | 论坛 | 博客
  • 博客访问: 117260
  • 博文数量: 31
  • 博客积分: 781
  • 博客等级: 军士长
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 16:52
文章分类

全部博文(31)

文章存档

2014年(1)

2012年(9)

2011年(21)

分类: LINUX

2011-05-11 09:35:23

FTP服务器简介
FTP是以TCP封包的模式来进行服务器与客户端直接的连接,C/S模式。
FTP客户端请求服务器,同时动态打开大于1024端口等待服务器端口21,然后服务器20端口与客户端连接。

匿名FTP
用户名anonymous,密码不限(一般为用户的邮箱)

连接模式
主动模式 服务器20端口主动连接客户端
被动模式 服务器大于1024的端口被动接受客户端,用于防火墙后的FTP客户访问外界FTP服务器(防火墙不允许接受外部发起的连接)。

FTP服务器软件
Wu-ftpd、Proftpd、vsFTPd及PureFTPd等。
Wu-ftpd最早的FTP服务器软件之一,官网:,支持Virtual FTP Server
Proftpd安全、容易配置、快速等,很少出现缓存溢出等错误现象。
vsFTPd即Very SecurityFTPd,RHEL内置,官网:
PureFTPd是内置在SuSE、Debian上的FTP服务器软件。
Serv-U是Windows系统下最常用的FTP服务器。http://

RHEL安装FTP服务器
在RHEL中有Red Hat Content Acceletatot和vsFTPd两款内置FTP,Acceletatot提供了Web和Ftp服务,但功能较弱。
检查是否安装了vsftpd
#rpm -q vsftpd     ;如果安装,卸载:rpm -e [软件包]
然后安装软件包:rpm -ivh [软件包]
启动vsFTP服务
#service vsftpd start   
或者使用
#/etc/init.d/vsftpd start
重启vsFTPd服务器
#service vsftpd restart
或者
#/etc/rc.d/init.d/vsftpd restart   ;在vsftpd运行时也可以使用#/etc/rc.d/init.dvsftpd condrestart
设置自动启动
#ntsysv

相关配置文件
/etc/vsftpd/vsftpd.conf(或者在/etc/vsftpd.conf)
/etc/pam.d/vsftpd  The Pluggable Authentication Modules(PAM)配置文件。它主要用来加强vsFTPd服务器的用户认证。
/etc/vsftp.ftpusers所有位于此文件内的用户都不能访问vsFTPd服务器。默认以包括root、bin和daemon等系统账号。
/etc/vsftpd.user_list用户列表,在vsftpd.conf中使用
/var/ftp 文件集散地,包括一个pub目录,默认都只读,只有root有写权限。
允许匿名访问
在vsftpd.conf中设置  anonymous_enable=YES

监听地址与端口
设置监听地址 listen_address=ip address,此参数在使用独立模式(standalone)时有效,定义了在主机的哪个IP地址上监听IP请求。
设置控制端口,控制端口在独立模式下有效,默认为21,  listen_port=port_value

主动模式配置参数
port_enable=YES
connect_from_port_20=YES
ftp_data_port=20
port_promiscuous=NO
被动模式配置参数
pasv_enable=YES
pasv_min_port=0 (任意)
pasv_promiscuous=NO
pasv_address=none (地址从呼入的连接套件自中获取)

ASCII模式
ascii_download_enable=YES   允许ASCII模式下载
ascii_upload_enable=YES     允许ASCII模式上传

超时选项
idle_session_timeout    空闲用户会话的超时时间300
data_connection_timeout  数据传输过程中被阻塞的最长时间300
accept_timeout   接受建立连接的超时设定60
connect_timeout   响应主动模式的数据连接的超时设定,60

负载控制
max_clents   最大的并发连接数,0 任意
max_per_ip   最大的并发连接数目 0 任意
anon_max_rate   匿名用户的最大数据传输速度
local_max_rate 本地用户的最大数据传输速度

用户设置
1、匿名用户配置
anonymous_enable   控制允许匿名用户登录
no_anon_password   是否需要密码
ftp_username       指定匿名用户与本地账号相对应,该用户的家目录为匿名用户的家目录,默认“ftp”
banned_email_file     拒绝使用banned_email_file参数指定文件中的所列出的用E-mail地址进行登录的匿名用户,结合E-mail地址文件使用
anon_root    设定匿名用户的根目录,即匿名用户登入后,被指定到此目录下   
anon_world_readable_only   是否只允许匿名用户下载可阅读文档
anon_upload_enable   控制匿名用户上传
anon_mkdir_write_enable  控制匿名用户创建目录
anon_other_write_enable   是否拥有出了上传和新建外的其他权限
chown_uploads   修改匿名用户所上传的所有权
chown_username    指定拥有匿名用户上传文件所有权的用户
2、本地用户
该类用户在FTP服务器所属主机上拥有账号,称为本地用户
local_enable  允许本地用户
chroot_local_user    设置YES时,本地用户只能访问到家目录
chroot_list_enable   指定可以访问家目录外的目录(通过配置文件指定,“/etc/vsftpd.chroot_list”)
chmod_enable   修改文件权限
local_umask    创建掩码
local_root   指定本地用户登录时切换到的目录
3、虚拟用户
guest_enable,当设置为YES时,所有非匿名用户都被映射为一个特定的本地用户,该用户通过“guest_name”指定
guest_name,虚拟用户被映射成的本地用户,默认为“ftp”

用户登录控制
banner_file 设置客户端登录vsFTPd服务器后,服务器显示在客户端的信息被保存在“banner_file”指定的文本文件中
cmds_allowed 设置可以执行的指令集合
ftpd_banner  登录服务器后客户端显示的欢迎或其他相关信息
userlist_enable  此项激活后,vsFTPd将禁止用户输入密码,直接把用户pass了
userlist_deny  设置YES,禁止文件中的用户登录,设置NO,只允许文件中的用户登录
cp_wrappers  使用TCP_Wrappers远程访问控制机制

目录访问控制
hide_ids  隐藏文件的所有者和组信息,都变成ftp
message_file  指定目录切换时显示的信息所在文件,默认值“.message”
force_dot_file 设置是否显示以“.”开头的文件
dirmessage_enable  切换目录时,是否显示目录切换信息
dirlist_enable   是否允许用户列目录

文件操作控制
download_enable  是否允许下载
chown_username  设置匿名用户上传的拥有者
chown_uploads   所有匿名用户上传的文件,其拥有者被设置为“chown_username”
write_enable    设置为YES时,允许使用DELE、RNFR(重命名)、STOR(断点续传)

新增文件权限设置
log_ftp_protocol  是否记录所有的FTP命令信息
dual_log_enable    如果启动生成相似的日志文件,/var/log/xferlog和/var/log/vsftpd.log
syslog_enable   设置为YES,将记录在/var/log/vsftpd.log日志传给syslogd daemon,由其决定存储位置

日志设置
xferlog_std_format 启用后,传输日志文件以标准xferlog格式书写到/var/log/xferlog
xferlog_enable   用于详细记录上传和下载,日志为/var/log/vsftpd.log

安装和配置PureFTPd服务器
PureFTPd可以通过某些插件来实现Web界面用户管理(如WebPureFTPd、PureFTPd PHP User Management),一般会使用MySQL+PureFTPd的组合形式实现。因此还需安装Apache及MySQL服务。
1、安装软件包仿照之前的软件包安装方法
2、为Apache服务放行
#setup  选择Firewall Configuration

安装MySQL数据库
由于需要的软件包很多,建议使用图形界面安装。

安装PureFTPd
1、从网站下载源码,,选择pure-ftpd-1.0.21.tar.bz2。
2、解压
#tar jxvf pure-ftpd-1.0.21.tar.bz2
3、进入目录
4、执行指令生成编译配置文件
#./configure\
--prefix=/usr/local/pureftpd\
--with-mysql\
--with-shadow\
--with-pam\
--with-paranoidmsg\
--with-welcomemsg\
--with-uploadscript\
--with-cookie\
--with-virtualchroot\
--with-virtualhosts\
--with-diraliases\
--with-quotas\
--with-puredb\
--with-sysquotas\
--with-ratios\
--with-ftpwho\
--with-throttling\
--with-language=simplified-chinese;
#make check
#make install
注:前提要安装了编译工具,如果没有可以到下载PureFTPd安装包

生成PureFTPd服务管理脚本
1、执行以下指令生成配置文件
#cd configuration-file
#chmod u+x pure-pure-config.pl
#cp pure-config.pl /usr/local/pureftpd/bin/
#mkdir /usr/local/pureftpd/etc
#cp pure-ftpd.conf /usr/local/pureftpd/etc
#cd ..
#cp pureftpd.* /usr/local/pureftpd/etc
2、生成PureFTPd服务
#cd contrib
#vi redhat.init
修改相应的命令行为
fullpath=/usr/local/pureftpd/sbin/$prog
pureftpwho=/usr/pureftpd/sbin/pure-ftpwho
3、安装PureFTPd服务
#cp redhat.init /etc/init.d/pure-ftpd
#chmod +x /etc/init.d/pure-ftpd

配置匿名用户登录环境
1、编辑/etc/pure-ftpd.conf
#vi /etc/pure-ftpd.conf
ChrootEveryone yes;限制所有用户在其主目录
AnonymousOnly yes;是否只允许匿名登录
NoAnonymous no;是否允许匿名连接
AnonymousCanCreateDirs yes;
MaxLoad 4 /;
AnonymoousRatio 1:10;
AnonymousBandwidth 8;
AllowAnonymousFXP yes;
AnonymousCantUpload no;
2、在没哟FTP账号下,创建
#useradd ftp -g ftp -d /var/ftp -s /sbin/nologin
注:先在/etc/passwd里检查是否有FTP账号
3、匿名用户主目录
#mkdir /var/ftp
#chown ftp:ftp /var/ftp

安装Zend Optimizer
Zend Optimizer是Zend技术公司开发的免费PHP优化软件。
1、下载Zend Optimizer ()
2、解压
3、安装
#./install.sh

WebPureFTP的安装与配置
WebPureFTP是一款Web界面的PureFTPd用户管理程序,可以方便的完成针对用户的限制设置。
1、下载并解压
2、将解压出的webpureftp移动到/var/www/html下并重命名
#mv webpureftp0.1 /var/www/html/webpureftp
3、用vi编辑器打开/var/www/html/webpureftp/config下的config.inc.php,修改数据库、用户名和密码
#vi /var/www/html/webpureftp/config/config.inc.php
$orig_tile="Web PureFTP管理系统";
$pagesize=20;
$topsize[0]=8;
$topsize[1]=10;
$topsize[2]=15;
$topsize[3]=20;
$onmousecolor="E6F0E6";
$default_ftp_root="/ftp";;
$obj_db=new db("localhost","root","mypasswd","pureftp");
?>

生成MySQL数据库
1、执行以下指令修改MySQL密码
#mysqladmin -u root -p passwd 新密码
注:旧密码为空
2、创建数据库
#mysql -u root -p
mysql>Create DataBase pureftpd;
3、执行webpureftp/SQL目录下的pureftp_0.1.sql文件
在文件头加上语句:use pureftp;
然后执行
mysql>mysql -u root
生成pure-ftpd数据库配置文件
1、在前文解压的pure-ftpd目录下,找到pureftpd-mysql.conf文件
#vi pureftpd-mysql.conf
修改数据库名、用户名和密码
MYSQLUser root
MYSQLPassword mypassword
MYSQLDatabase pureftp
2、重命名后,复制到/etc目录
#mv pureftpd-mysql.conf pure-ftpd.conf
#cp pure-ftpd.conf /etc
3、验证
登录

FTP服务器的访问
1、linux系统的ftp 访问方式,用户名为wangyh(密码wangyh)
#lftp -u wangyh 192.168.56.101
#ls -al
2、windows访问方式(略)


阅读(1529) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

jamesbert2011-05-12 00:13:21

启动服务容易,但是要管理好,不容易呀!