`
michaeltangbin
  • 浏览: 271802 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

Ubuntu自带的FTP服务器vsftpd配置详解

阅读更多
Ubuntu自带的FTP服务器是vsftpd.

  1、安装vsftpd

  Ubuntu安装软件倒不是件困难的事,输入:

  sudo apt-get install vsftpd

  安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地址。应该可以看到一个空白内容的ftp空间。

  默认设置下匿名用户可以下载,但不能写入或是上传

  2、设置 vsftpd.conf文件

  现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。

  首先找到设置vsftpd的文件,位置在/etc/vsftpd.conf

  修改之前最好先备份下这个文件:

  sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old

  

 

 

然后可以改动了:

    1. 匿名服务器的连接(独立的服务器)

在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:

Anonymous_enable=yes (允许匿名登陆)

Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)

Local_umask=022 (FTP上本地的文件权限,默认是077)

Connect_form_port_20=yes (启用FTP数据端口的数据连接)*

Xferlog_enable=yes (激活上传和下传的日志)

Xferlog_std_format=yes (使用标准的日志格式)

Ftpd_banner=XXXXX (欢迎信息)

Pam_service_name=vsftpd (验证方式)*

Listen=yes (独立的VSFTPD服务器)*

功能:只能连接FTP服务器,不能上传和下传

注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项

2. 开启匿名FTP服务器上传权限

在配置文件中添加以下的信息即可:

Anon_upload_enable=yes (开放上传权限)

Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)

Write_enable=yes (开放本地用户写的权限)

Anon_other_write_enable=yes (匿名帐号可以有删除的权限)

3. 开启匿名服务器下传的权限

在配置文件中添加如下信息即可:

Anon_world_readable_only=no

注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限

(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去

4.普通用户FTP服务器的连接(独立服务器)

在配置文件中添加如下信息即可:

Local_enble=yes (本地帐户能够登陆)

Write_enable=no (本地帐户登陆后无权删除和修改文件)

功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限

注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传

5. 用户登陆限制进其它的目录,只能进它的主目录

设置所有的本地用户都执行chroot

Chroot_local_user=yes (本地所有帐户都只能在自家目录)

设置指定用户执行chroot

Chroot_list_enable=yes (文件中的名单可以调用)

Chroot_list_file=/任意指定的路径/vsftpd.chroot_list

注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可

6. 限制本地用户访问FTP

Userlist_enable=yes (用userlistlai 来限制用户访问)

Userlist_deny=no (名单中的人不允许访问)

Userlist_file=/指定文件存放的路径/ (文件放置的路径)

注:开启userlist_enable=yes匿名帐号不能登陆

7. 安全选项

Idle_session_timeout=600(秒) (用户会话空闲后10分钟)

Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)

Accept_timeout=60(秒) (将客户端空闲1分钟后断)

Connect_timeout=60(秒) (中断1分钟后又重新连接)

Local_max_rate=50000(bite) (本地用户传输率50K)

Anon_max_rate=30000(bite) (匿名用户传输率30K)

Pasv_min_port=50000 (将客户端的数据连接端口改在

Pasv_max_port=60000 50000—60000之间)

Max_clients=200 (FTP的最大连接数)

Max_per_ip=4 (每IP的最大连接数)

Listen_port=5555 (从5555端口进行数据连接)

8. 查看谁登陆了FTP,并杀死它的进程

ps –xf |grep ftp

kill 进程号

VSFTPD的高手篇

作者:龙磊

我可不是高手!!!^_^我只不过是个菜鸟,尽我的能力写出了我这个菜鸟觉得的高手篇,所以有什么错误请大家指正哦!!!

环境:linux as 3.0 + vsftpd -1.2.0-4的系统架构,是在独立服务器下的哦!讨厌XINETD^_^

1. 配置本地组访问的FTP

首先创建用户组 test和FTP的主目录

groupadd test

mkdir /tmp/test

然后创建用户

useradd -G test –d /tmp/test –M usr1

注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定

M:不建立默认的自家目录,也就是说在/home下没有自己的目录

useradd –G test –d /tmp/test –M usr2

接着改变文件夹的属主和权限

chown usr1.test /tmp/test ----这表示把/tmp/test的属主定为usr1

chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么权限都没有

这个实验的目的就是usr1有上传、删除和下载的权限

而usr2只有下载的权限没有上传和删除的权限

当然啦大家别忘了我们的主配置文件vsftpd.conf

要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项是有的哦!

2. 配置独立FTP的服务器的非端口标准模式进行数据连接

这个非常容易:在VSFTPD。CONF中添加

Listen_port=33333

就可以了啦!

好了重头戏来了,这也是我为什么叫高手篇的缘故!^_^(大家不要扔鸡蛋哦!)

3. 配置单独的虚拟FTP,使用虚拟FTP用户,并使建立的四个帐户中有不同的权限

(两个有读目录的权限,一个有浏览、上传、下载的权限,一个有浏览、下载、删除和改文件名的权限)

A:配置网卡

第一块网卡地址是10.2.3.4 掩码是255.255.0.0

ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up

B:写入/etc/sysconfig中(为了重起后IP地址不会丢失)

cd /etc/sysconfig/network-scripts

cp ifcfg-eth0 ifcfg-eth0:1

vi ifcfg-eth0:1在其中修改内容如下

DEVICE=eth0:1

BROADCAST=211.131.4.255

HWADDR=该网卡的MAC地址

IPADDR=211.131.4.253

NETMASK=255.255.255.0

NETWORK=211.131.4.0

ONBOOT=yes

TYPE=Ethernet

wq推出

C:进入vsftpd.conf所在的文件夹

cp vsftpd.conf vsftpd2.conf

修改vsftpd.conf添加以下信息

Listen_address=10.2.3.4

修改vsftpd2.conf添加以下信息

Listen_address=211.131.4.253

Ftpd_banner=this is a virtual ftp test

到此虚拟的FTP服务器建立好了

D:建立logins.txt

vi /tmp/logins.txt

添加入下信息:

longlei------------用户名

longlei------------密码

zhangweibo

zhangweibo

jinhui

jinhui

lxp

lxp

格式要按照我的来哦,一个用户名,一个密码啦

F:建立访问者的口令库文件,然后修改其权限

db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db

G:进如/etc/pam.d/中创建ftp.vu

在此文件中添加如下信息

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

H:在/var/ftp/创建目录并改变其属性和它的属主

useradd -d /var/ftp/test qiang

chmod 700 /var/ftp/test

在目录中添加test_file测试文件

I:进入vsftpd2.conf修改其中的信息(我加的是)

Listen_yes

Anonymous_enable=no

Local_enable=yes

Write_enable=no

Anon_upload_enable=no

Anon_mkdir_write_enable=no

Anon_other_write_enable=no

Chroot_local_user=yes

Guest_enable=yes----------起用虚拟用户

Guest_username=qiang------将虚拟用户映射为本地用户

Listen_port=5555

Max_client=10

Max_per_ip=1

Ftpd_banner=this is a virtual server and users

Pam_service_name=ftp.vu

注:在主配置文件中给的权限越低,在后面分用户管理的时候对拥护的权限划分的空间就越大,因为主配置文件最高的限制服务先读主配置文件,然后再读用户的配置文件

重起服务

到此虚拟USER就建好了

J:在VSFTPD。CONF所在的目录中创建virtaul文件目录

并在文件目录中创建以你用户名命名的配置文件

Longlei zhangweibo jinhui lxp

在longlei中添加:

Anon_world_readable_only=no

在lxp中添加

Anon_world_readable_only=no

这样此两个用户就有了浏览目录的权限了

在jinhui中添加

Anon_world_readable_only=no

Write_enable=yes

Anon_upload_enable=yes

此用户就有了上传、下载和浏览的权限

在zhangweibo中添加

Anon_world_readable_only=no

Write_enable=yes

Anon_upload_enable=yes

Anon_other_write_enable=yes

此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限

K:修改vsftpd2.conf

加入user_config_dir=/vsftpd.conf所在的目录/virtual

重起服务器就搞定了

好了大家别走开,现在隆重推出VSFTPD。CONF中的我所知道的所有配置信息

Anonymous_enable=yes (允许匿名登陆)

Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)

Local_umask=022 (FTP上本地的文件权限,默认是077)

Connect_form_port_20=yes (启用FTP数据端口的数据连接)*

Xferlog_enable=yes (激活上传和下传的日志)

Xferlog_std_format=yes (使用标准的日志格式)

Ftpd_banner=XXXXX (欢迎信息)

Pam_service_name=vsftpd (验证方式)*

Listen=yes (独立的VSFTPD服务器)*

Anon_upload_enable=yes (开放上传权限)

Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)

Write_enable=yes (开放本地用户写的权限)

Anon_other_write_enable=yes (匿名帐号可以有删除的权限)

Anon_world_readable_only=no (放开匿名用户浏览权限)

Ascii_upload_enable=yes (启用上传的ASCII传输方式)

Ascii_download_enable=yes (启用下载的ASCII传输方式)

Banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)

Idle_session_timeout=600(秒) (用户会话空闲后10分钟)

Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)

Accept_timeout=60(秒) (将客户端空闲1分钟后断)

Connect_timeout=60(秒) (中断1分钟后又重新连接)

Local_max_rate=50000(bite) (本地用户传输率50K)

Anon_max_rate=30000(bite) (匿名用户传输率30K)

Pasv_min_port=50000 (将客户端的数据连接端口改在

Pasv_max_port=60000 50000—60000之间)

Max_clients=200 (FTP的最大连接数)

Max_per_ip=4 (每IP的最大连接数)

Listen_port=5555 (从5555端口进行数据连接)

Local_enble=yes (本地帐户能够登陆)

Write_enable=no (本地帐户登陆后无权删除和修改文件)

这是一组

Chroot_local_user=yes (本地所有帐户都只能在自家目录)

Chroot_list_enable=yes (文件中的名单可以调用)

Chroot_list_file=/任意指定的路径/vsftpd.chroot_list

(前提是chroot_local_user=no)

这又是一组

Userlist_enable=yes (在指定的文件中的用户不可以访问)

Userlist_deny=yes

Userlist_file=/指定的路径/vsftpd.user_list

又开始单的了

Banner_fail=/路径/文件名 (连接失败时显示文件中的内容)

Ls_recurse_enable=no

Async_abor_enable=yes

One_process_model=yes

Listen_address=10.2.2.2 (将虚拟服务绑定到某端口)

Guest_enable=yes (虚拟用户可以登陆)

Guest_username=所设的用户名 (将虚拟用户映射为本地用户)

User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹

(指定不同虚拟用户配置文件的路径)

又是一组

Chown_uploads=yes (改变上传文件的所有者为root)

Chown_username=root

又是一组

Deny_email_enable=yes (是否允许禁止匿名用户使用某些邮件地址)

Banned_email_file=//任意指定的路径/xx/

又是单的

Pasv_enable=yes ( 服务器端用被动模式)

User_config_dir=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)

 

如需要使用本地用户登陆关闭来宾用户,必须设置如下命令:

anonymous_enable=no
guest_enable=no
local_enable=yes
write_enable=yes
local_umask=022
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd.chroot_list (如没有则自己创建)

(在etc/vsftpd.chroot_list 填入需要登陆的本地用户名)

=======================================================
解决vsftpd的中文乱码问题

这里有点建议,如果想让自己编译后的vsftpd与源安装没有什么区别的话
最好先安装源中的vsfpd,然后把所有的功能都配置完后,在解决中文乱码问题
因为删除源的vsftpd后它的/init.d/vsftpd与/vsftpd.conf是不会删除的,可以为我们打好铺垫,不然你会发现很无奈的!如果你是直接编译安装,附件给出会给出我的init.d/vsftpd与vsftpd.conf文件,把他们覆盖到/etc下吧!

这里是需要手工编译的,大家不要怕麻烦,其实很简单的
开始做编译的准备工作,准备编译环境需要的库包
sudo apt-get build-dep vsftpd
----------------------------------------
这里使用先安装源里的vsftpd,然后卸载
sudo apt-get install vsftpd
sudo apt-get remove vsftpd
-----------------------------------------
下载附件并解压包
tar -zxvf vsftpd-2.0.6
cd vsftpd-2.0.6
sudo su :使用root用户开始编译
make #编译命令,如果无错误出现,表示成功
make install #安装
如果安装中出现找不到目录的话,就建立那个缺的目录就好了
基本上都会提示缺少/man8和/man5目录的,建立后在重新make install

下边就来测试下效果修改配置文件,加入
charset_filter_enable=YES #开启符过滤
charset_client=GB2312 #客户端字符设置为简体中文
好了现在把服务开启测试下吧
sudo /etc/init.d/vsftpd restart

在win下上传一个中文文件,看看效果吧,然后在把配置文件中关于字符的关掉,重起服务,在看吧

如果有什么问题的话,请回帖留言
已经测试过,服务器ubuntu8.04-server,客户机xp,xp上传后编码正常
补充下会遇到的问题
1:如果使用/etc/init.d/vsftpd restart 没有任何输出的话,请更改/init.d/vsftpd的内容把启动路径该为/usr/local/sbin/vsftpd,因为编译安装首先会优先安装到这个路径
2:如果匿名用户无法登陆,老是提示不允许匿名登陆而配置文件中又设置了允许,请建立目录
sudo mkdir /usr/share/empty 建立后就可以了
3:如果在linux下上传文件,如果工具允许的话,设置为gb2312编码上传,或是尽量用英文
4:因为补丁在一定程度覆盖原程序,所以有2G限制,有时间会去看下源代码的,基本确定是数值溢出问题
如果修复的话,会补充上的

 

分享到:
评论

相关推荐

    vsftpd配置详解.pdf

    VSFTPD 是一种功能强大且安全的 FTP 服务器软件,它提供了许多配置选项来满足不同的需求。本文将详细介绍 VSFTPD 的配置文件和参数,帮助读者更好地理解和使用 VSFTPD。 一、安装和配置 VSFTPD 要在 Ubuntu 中安装...

    Ubuntu16.04离线安装包vsftpd

    VSFTPD,全称为Very Secure FTP Daemon,是一款安全且功能强大的FTP服务器软件。在Ubuntu 16.04系统中,如果你需要在没有网络连接的情况下安装它,可以采用离线安装的方式。下面将详细介绍这个过程。 首先,你需要...

    基于Ubuntu的FTP服务器

    首先,FTP服务器的核心在于一个名为“vsftpd”(Very Secure FTP Daemon)的开源软件,它在Ubuntu中广泛被使用。在Ubuntu 22.04上安装vsftpd非常简单,可以通过命令行执行以下操作: ```shell sudo apt update sudo...

    ubuntu_vsftpd FTP服务器配置学习札记

    在本文中,我们将深入探讨如何在Ubuntu操作系统上配置和管理vsftpd(Very Secure FTP Daemon)服务器。vsftpd是一款安全、高效的FTP服务器软件,广泛应用于Linux系统中。以下是关于vsftpd安装、配置和注意事项的详细...

    vsftpd配置详解.docx

    VSFTPD是一个功能强大且安全的FTP服务器,它可以在Linux系统中安装和配置,本文将详细介绍VSFTPD的安装、配置和使用。 一、安装VSFTPD 在Ubuntu系统中,可以使用以下命令安装VSFTPD: $sudo apt-get install ...

    Redhat Linux上FTP服务器Vsftpd配置

    详细描述在Linux上配置FTP服务,Vsftpd服务的配置方式包含两种:1、系统用户配置2、非系统用户配置。用户可以按照改文档进行操作配置。

    Ubuntu下ftp服务器配置方法

    ### Ubuntu下FTP服务器配置方法详解 #### 一、概述 在Ubuntu系统中配置FTP服务器是一项常见且实用的任务,尤其对于需要进行文件传输管理的应用场景来说更是如此。本文将详细介绍如何在Ubuntu环境下安装与配置...

    vsftpd入门1--安全的FTP服务器 vsftpd简介.docx

    vsftpd入门--安全的FTP服务器vsftpd简介PAGE1/NUMPAGES4HYPERLINK"http://os.51cto.com/art/201008/222036.htm"\o"vsftpd入门——安装、配置、案例与常见问题"vsftpd入门--安全的FTP服务器vsftpd简介摘要:本文对...

    vsftpd配置文件详解 

    对于Ubuntu系统而言,通过细致地配置vsftpd.conf文件,可以轻松搭建起安全可靠的FTP服务器。本文将详细解析vsftpd配置文件中的各项参数及其意义,帮助读者更好地理解和使用vsftpd。 #### 二、默认配置概述 默认...

    Ubuntu下FTP服务器搭建+DNS服务器搭建

    在Ubuntu系统中搭建FTP服务器和DNS服务器是网络服务配置中的基础任务,对于系统管理员来说至关重要。FTP(File Transfer Protocol)服务器允许用户通过网络传输文件,而DNS(Domain Name System)服务器则负责将域名...

    ubuntu搭建ftp服务器

    在Ubuntu系统中搭建FTP服务器,通常我们会选择使用`vsftpd`(Very Secure FTP Daemon)这个轻量级且安全的FTP服务软件。`vsftpd`因其安全性高、配置简单而受到广泛欢迎。以下是如何在Ubuntu 16.04上安装、配置以及...

    Ubuntu下Vsftpd服务器配置指南

    ### Ubuntu下Vsftpd服务器配置指南 #### 一、Vsftpd简介与许可说明 Vsftpd是一款在Linux系统上非常流行的FTP服务器软件,它以其高效性、安全性以及丰富的功能而受到广泛赞誉。根据给定内容,我们可以了解到Vsftpd...

    Centos 8 vsftpd多用户FTP服务器配置完美方案——同时解决PORT和PASV模式

    Centos 8 vsftpd 多用户 FTP 服务器配置完美方案 在CentOS 8系统中,配置vsftpd多用户FTP服务器,实现多虚拟用户FTP连接,并同时解决FTP PORT和PASV模式下的问题。 vsftpd简介 vsftpd是非常流行的FTP服务器软件,...

    Ubuntu16.04离线安装软件-离线安装包vsftpd-3.0.3

    有时候会遇到客户是内网环境的,无法在线通过apt-get install vsftpd进行安装,本文将提供vsftpd_...3、进行ftp配置即可,不动配置的可看我上一博客(https://blog.csdn.net/qq_32648289/article/details/123654639)

    linux安装vsftpd配置FTP服务器

    ### Linux安装vsftpd配置FTP服务器详解 在Linux系统中,vsftpd是配置FTP服务的常用工具之一,因其安全性和稳定性而广受好评。本文将深入解析如何在Linux环境中安装与配置vsftpd,搭建FTP服务器,以及进行必要的安全...

    vsftpd配置文件详解.doc

    vssftp配置文件详解,包含vsftpd所有配置文件路径和用途说明。

    Ubuntu 用vsftpd 配置FTP服务器教程详解

    在这个教程中,我们将使用`vsftpd`(Very Secure FTP Daemon)这款轻量级且安全的FTP服务器软件进行配置。以下是一个详尽的步骤指南: 首先,我们需要在Ubuntu上安装`vsftpd`。这可以通过运行以下命令来完成: ```...

    ubuntu_ftp_server配置方法.doc

    Ubuntu自带的FTP服务器是vsftpd. 安装使用 1、安装vsftpd sudo apt-get install vsftpd 安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地 址。应该可以看到一个空白内容的ftp空间。 默认...

    【最新】Ubuntu下ftp服务器配置方法.doc

    Ubuntu系统自带的FTP服务器软件是vsftpd(Very Secure FTP Daemon)。下面将详细介绍如何在Ubuntu上安装和配置vsftpd服务器。 首先,安装vsftpd非常简单,只需在终端中输入以下命令: ``` sudo apt-get install ...

    ubuntu server 安装vsftpd FTP服务器linux服务器应用 电脑资料.doc.docx

    Ubuntu Server 安装 VSFTPD FTP 服务器 Linux 服务器应用电脑资料 安装 VSFTPD FTP 服务器是 Linux ...本文介绍了如何在 Ubuntu Server 10.4 上安装 VSFTPD FTP 服务器,包括安装、配置、认证用户和解决问题等内容。

Global site tag (gtag.js) - Google Analytics