随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

Linux 架设vsftp服务器

el5上架设

vsftp是在各Linux分发版中较为流行的ftp服务器

 

基本软件需求:

tcp_wrappers-7.6-40.4.el5.i386.rpm

vsftpd-2.0.5-12.e15.i386.rpm

 

安装配置,分为在xinet.d下的服务托管模式 和 独立模式,此次讨论独立模式

  1. 修改配置文件适合需求:/etc/vsftpd/vsftpd.conf
  2. 修改iptables防火墙设置:“stop” it 不好,最好放行telnet的端口
  3. 修改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

 

posted on   jinzhenshui  阅读(843)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

点击右上角即可分享
微信分享提示