Vsftpd的安装配置

1.安装
  这里采用rpm包安装(采用源码安装出现问题,无法配置)。

  #rpm -ivh vsftpd-2.0.1-5.i386.rpm 等待安装完成即可。

 service vsftpd start 启动vsftpd服务

  如果在不设置任何的情况下,可以以匿名的方式访问该ftp。

  注.如果访问不了的时候请大家要把linux的防火墙也要关闭:

  在安装好ftp会产生几个文件:

  /etc/vsftpd/vsftpd.conf 主配置文件

  /etc/vsftpd.ftpusers 指定哪些用户不能访问FTP服务器

  /etc/vsftpd.user_list 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userli

st_deny的取值来决定。

2.配置核心文件vsftpd.conf

       anonymous_enable=YES/no 是否允许匿名用户登录

  anonymous_enable=yes/no 是否允许匿名上传文件

  local_enable= YES/no 是否允许本地用户登录

  write_enable= YES/no 是否允许本地用户上传

  guest_enable=yes/no 是否允许虚拟用户登录;

  local_mask=022 设置本地用户的文件生成掩码为022,默认值为077

  dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容

  xferlog_enable= YES 激活上传和下载日志

  connect_from_port_20=YES 启用FTP数据端口连接

  pam_service_name=vsftpd 设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下

  userlist_enable= YES 允许vsftpd.user_list文件中的用户访问服务器

  userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器

  listen= YES/no 是否使用独占启动方式(这一项比较重要)

  tcp_wrappers= YES/no 是否使用tcp_wrappers作为主机访问控制方式

  最主要的就是这些设置了。(这是一般都是默认的不是太懂的不要动)

  大家可以设置下面的设置:

  ftpd_banner=welcome to ftp service 设置连接服务器后的欢迎信息

  idle_session_timeout=60 限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)

  data_connection_timeout=120 设置客户机在进行数据传输时,设置空闲的数据中断时间

  accept_timeout=60 设置在多长时间后自动建立连接

  connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;

  max_clients=200 指明服务器总的客户并发连接数为200

  max_per_ip=3 指明每个客户机的最大连接数为3

  local_max_rate=50000(50kbytes/sec)

  anon_max_rate=30000 设置本地用户和匿名用户的最大传输速率限制

  pasv_min_port=端口

  pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;

  listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;

  listen_port=端口号 设置FTP工作的端口号,默认的为21

  chroot_local_user=YES 设置所有的本地用户可以chroot

  chroot_local_user=NO 设置指定用户能够chroot

  chroot_list_enable=YES

  chroot_list_file=/etc/vsftpd.chroot_list(只有/etc/vsftpd.chroot_list中的指定的用户才能执行 )

  local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;

  chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;

  chroot_list_enable=yes/no 锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path 中指定;

  userlist_enable=YES/NO 是否加载用户列表文件;

  userlist_deny=YES 表示上面所加载的用户是否允许拒绝登录;

  userlist_file=/etc/vsftpd.user_list 列表文件

3.高级配置

       #vi /etc/hosts.allow

  vsftpd:192.168.5.128:DENY 设置该IP地址不可以访问ftp服务(vsftpd在独占启动方式下支持tcp_wrappers主机访问控制方式)

  时间限制:

  #cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd

  #vi /etc/xinetd.d/vsftpd/

  修改 disable = no

  access_time = hour:min-hour:min (添加配置访问的时间限制(注:与vsftpd.conf中listen=NO相对应)

  例: access_time = 8:30-11:30 17:30-21:30 表示只有这两个时间段可以访问ftp

4.添加一个只能从ftp登录服务器,而不能从本地登录的用户。以下创建一个用户ftpuser,不允许从本地登录,并创建该用户的密码。

        [root@localhost root]# useradd –g ftp –s /sbin/nologin ftpuser

       [root@localhost root]# passwd ftpuser

       Changing password for user ftpuser.

       New password:

       Retype new password:

       passwd: all authentication tokens updated successfully.

<think>好的,我现在需要帮助用户解决在Docker中安装配置vsftpd的问题。首先,我得回想一下用户提供的引用内容,看看里面有哪些有用的信息。用户提到了几个引用,都是关于Docker配置vsftpd的,其中引用1、3、4、5都提到了具体的步骤和参数设置。 首先,用户需要的是安装配置的指南或教程。根据引用3和5,他们使用了fauria/vsftpd镜像,并且提到了端口映射、卷挂载和环境变量的设置。比如,-p参数用于端口映射,-v挂载目录,-e设置FTP用户和密码,还有被动模式相关的参数如PASV_ADDRESS、PASV_MIN_PORT和PASV_MAX_PORT。这些环境变量是关键,因为vsftpd配置可能需要这些参数来正确运行。 然后,用户可能遇到的问题是如何正确设置这些参数,特别是被动模式的配置。引用3和5都指出PASV_ADDRESS需要设置为宿主机的IP地址,这一点很重要,否则客户端可能无法连接。另外,端口范围也需要映射,比如21100-21110,这需要在docker run命令中正确指定。 接下来,用户可能还需要知道如何持久化数据。引用3提到将宿主机的/home/vsftpd/fileHome挂载到容器的/home/vsftpd,这样文件就不会丢失。同时,用户可能需要创建目录并设置权限,确保FTP用户有访问权限。 然后,用户可能对使用docker-compose更感兴趣,因为引用1提到使用docker-compose可以简化部署。所以,我应该提供一个docker-compose.yml的示例,这样用户只需运行docker-compose up -d即可启动服务,而不需要记住复杂的命令行参数。 另外,用户可能遇到的常见问题包括配置文件修改。引用2提到了如何通过docker cp命令将容器内的配置文件复制到宿主机进行编辑,然后再覆盖回去。虽然用户的问题可能不需要修改配置文件,但如果需要自定义vsftpd的设置,这个方法可能有用。不过根据引用3和5,大部分配置可以通过环境变量完成,可能不需要手动修改配置文件。 测试部分也很重要,用户安装完成后需要知道如何连接。可以使用ftp命令或者FileZilla这样的客户端,输入宿主机的IP、端口21,以及设置的用户名和密码。被动模式是否正常工作也需要测试,确保数据端口正确开放。 最后,注意事项部分需要提醒用户关于SELinux防火墙的问题,如果宿主机的防火墙没开放相应端口,可能会导致连接失败。同时,安全建议如使用强密码、限制用户目录(chroot)也很重要,这些在引用4中提到了chroot_local_user=YES,可以增强安全性。 总结一下,我需要将安装步骤分为使用docker run和docker-compose两种方式,详细说明每个参数的作用,并给出测试方法和注意事项。确保用户能够一步步按照指南操作,避免常见的坑,比如错误的PASV_ADDRESS或未开放的端口。</think>以下是在Docker容器中安装配置vsftpd的完整指南,结合引用内容整理关键步骤及注意事项: ### 一、基础安装步骤(命令行方式) 1. **创建数据目录** ```bash mkdir -p /home/vsftpd/fileHome # 用于持久化存储FTP文件[^3][^5] ``` 2. **启动容器** ```bash docker run -d \ -p 20:20 -p 21:21 -p 21100-21110:21100-21110 \ -v /home/vsftpd/fileHome:/home/vsftpd \ -e FTP_USER=vsftp \ -e FTP_PASS=Vsftp@2024 \ -e PASV_ADDRESS=你的宿主机IP \ -e PASV_MIN_PORT=21100 \ -e PASV_MAX_PORT=21110 \ --name vsftpd \ --restart=always \ fauria/vsftpd[^3][^5] ``` **参数说明**: - `-p 20:20`: FTP数据端口 - `-p 21:21`: FTP控制端口 - `-p 21100-21110`: 被动模式端口范围 - `-v`: 挂载宿主机目录实现数据持久化 - `PASV_ADDRESS`: 必须设置为宿主机公网IP或局域网IP[^5] - `--restart=always`: 容器自动重启 ### 二、进阶配置(docker-compose方式) 1. **创建`docker-compose.yml`文件** ```yaml version: '3' services: vsftpd: image: fauria/vsftpd ports: - "20:20" - "21:21" - "21100-21110:21100-21110" volumes: - /home/vsftpd/fileHome:/home/vsftpd environment: - FTP_USER=vsftp - FTP_PASS=Vsftp@2024 - PASV_ADDRESS=你的宿主机IP - PASV_MIN_PORT=21100 - PASV_MAX_PORT=21110 restart: always[^1][^3] ``` 2. **启动服务** ```bash docker-compose up -d ``` ### 三、配置验证与测试 1. **检查容器状态** ```bash docker logs vsftpd # 查看启动日志 ``` 2. **客户端连接测试** ```bash ftp 宿主机IP 21 # 输入用户名密码后执行命令测试: ls # 查看文件列表 put test.txt # 上传测试文件 ``` *或使用FileZilla等图形工具,需启用被动模式[^5]* ### 四、常见问题解决 1. **被动模式失败** - 确认`PASV_ADDRESS`设置为正确IP - 检查防火墙是否开放20-21及21100-21110端口[^3] 2. **权限问题** ```bash chmod -R 777 /home/vsftpd/fileHome # 临时解决方案 ``` 3. **修改配置文件** ```bash docker cp vsftpd:/etc/vsftpd.conf ./vsftpd.conf # 提取配置文件 vim vsftpd.conf # 修改配置 docker cp ./vsftpd.conf vsftpd:/etc/vsftpd.conf # 回写配置 docker restart vsftpd # 重启生效[^2] ``` ### 五、安全增强建议 1. **启用SSL加密** ```bash # 在docker命令中添加: -e SSL_ENABLE=YES \ -v /path/to/ssl.crt:/etc/ssl/certs/vsftpd.crt \ -v /path/to/ssl.key:/etc/ssl/private/vsftpd.key ``` 2. **限制用户目录** ```bash # 在环境变量中添加: -e LOCAL_ROOT=/home/vsftpd # 限制用户只能访问指定目录[^4] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值