el5上架设
vsftp是在各Linux分发版中较为流行的ftp服务器
基本软件需求:
tcp_wrappers-7.6-40.4.el5.i386.rpm
vsftpd-2.0.5-12.e15.i386.rpm
安装配置,分为在xinet.d下的服务托管模式 和 独立模式,此次讨论独立模式
- 修改配置文件适合需求:/etc/vsftpd/vsftpd.conf
- 修改iptables防火墙设置:“stop” it 不好,最好放行telnet的端口
- 修改selinux:“stop” it 不好;setenfoce 0 不好;最好放行ftp策略 setsebool ftpd_disable_trans on|1
最基本的相关设置
- listen=yes --打开ftp服务,开启匿名服务(只允许匿名用户列表ftp根目录,可以下载;根ftp目录在:/var/ftp/)
- pam_service_name=vsftpd --太恶心了。即使你不用seliunx,也得加上这句话,这让vsftpd的身份认证方式!!!
- listen_port=21 --监听ftp端口
- listen_address=x.x.x.x --监听某个ip或地址
- idle_session_timeout=600 --空闲会话断开前的经过的秒数
- connect_timeout=60 --网络连接超时秒数
- accept_timeout=60 --用户连接到服务器后排队等候超时
- max_client=400 --最大客户端连接数
- max_per_ip=1 --每ip最大连接数
- local_max_rate=100000 --本地用户的最大连接速率bit
- anno_max_rate=1000 --匿名用户的最大连接速率
辅助基本设置
- ftpd_banner=欢迎信息
- banner_file=/var/vsftpd_banner_files --使用该文件中的欢迎信息,注意该设置会override ftpd_banner的设置
- banner_fail=/var/vsftpd_banner_fail --使用该文件中的显示连接失败信息,
- dirmessage_enable=yes --切换目录时使用该目录下的.message显示消息
匿名用户管理 本质上:vsftp进程将匿名用户模拟Linux上的nobody用户,所有必须保证适当的Linux系统权限
- anonymous_enable=yes --允许匿名用户访问ftp,是默认设置,访问根ftp目录 注意必须保证匿名用户所访问的目录在Linux下有写r权限
- anon_root=/var/ftp/anon --修改匿名用户的ftp根目录
- anon_upload_enable=yes --允许匿名用户在根ftp目录的上传文件权限 注意必须保证匿名用户所访问的目录在Linux下有写w权限
- anon_mkdir_write_enable=yes --允许匿名用户创建目录并上传文件权限 注意必须保证匿名用户所访问的目录在Linux下有写w权限
- anon_world_readable_only=no --允许匿名用户的读权限,可浏览所有文件、目录、子目录 注意必须保证匿名用户所访问的目录在Linux下有写r权限
本地用户管理 本质上:vsftp进程将本地用户模拟Linux上的对应本地用户,所有必须保证适当的Linux系统权限
- pam_service_name=vsftpd --太恶心了。即使你不用seliunx,也得加上这句话,这让vsftpd的身份认证方式!!!
- anonymous_enable=no --关闭匿名登陆
- local_root=/var/ftp --本地用户的根目录,可以通过设置chroot_local_user=yes来限制本地用户只能在其home下
- local_enable=yes --允许本地用户登陆vsftp服务器
- write_enable=yes --允许本地用户的写权限
- chroot_local_user=yes --本地用户只能处于自家home下,如果没有这个设置,登陆用户可以访问任何具有Linux权限的os系统目录
- chroot_list_enable=yes --只允许列表中的用户更改根目录,必须同时设置了chroot_local_user=yes、chroot_list_file=/var/vsftpd/chroot_list;否则该设置不起作用
- chroot_list_file=/var/vsftpd/chroot_list --允许用户列表,如果chroot_list_enable=yes,必须设置该参数
- userlist_enable=yes --禁止userlist_file文件中列出的本地用户登陆vsftp服务器,配合userlist_deny策略设置
- userlist_deny=yes --限制策略:限制userlist_file文件中列出的本地用户登陆vsftp服务器——默认设置;否则只允许userlist_file文件中的用户访问
- userlist_file=/etc/vsftpd/userlist --用户列表
虚拟用户管理
关键是理解vsftpd对虚拟用户采取pam用户认证方式。所有必须设置相应的配置文件。而且在pam认证里必须进行审核 和 帐户 模块的设置!该ftp虚拟用户不是系统中真实存在的为了访问Linux的相应目录,必须在vsftpd.conf配置里设置真实的本地用户!相关设置如下:
- 虚拟用户对应的内部用户设置同本地用户设置。关键是local_enable=yes write_enable=yes
- 设置虚拟用户:db42_load -T -t hash -f 虚拟用户列表文件(用户名A\n用户A密码..........) pam虚拟用户数据库.db
- 在/etc/pam.d/下建立一个vsftpd应用的配置文件如“vsftpd”——该文件名需要在——vsftpd.conf的pam_service_name=?——相应配置
- guest_enable=yes --允许使用虚拟用户,即纯vsftp用户
- guest_username=root --虚拟用户映射的本地用户,此处是root超级管理员用户
- user_config_dir=dir_spece --虚拟用户的具体配置目录,该目录下有以各个虚拟用户名定义的配置文件:虚拟用户可以像本地用户一样进行根目录home限制,参考本地用户的设置
高级管理
- 创建虚拟目录:#mount --bind olddir newdir
- 以xinet服务启动:
1.在/etc/xinetd.d/目录中创建一个文件vsftpd
/etc/xinetd.d/vsftpd内容如下:
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = no
}
2.在/etc/下配置vsftpd.conf配置文件:即 /etc/vsftpd.conf。注意删除 listen=YES
未知其作用的参数
data_connection_timeout