ubuntu配置FTP服务器

更新时间:2023-05-30 01:13:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Ubuntu安装FTP服务器

一、Ubuntu安装FTP服务器

所有操作都是在 sudo su 下:

安装:

$ sudo su 进入 #

# apt-get install vsftpd

# ps -e | grep ftp #查看是否启动

安装完毕后或许会自动生成一个帐户”ftp”,/home下也会增加一个文件夹。

如果没有生成这个用户的话可以手动来,生成了就不用了:

代码:

sudo useradd -m ftp

sudo passwd ftp

有”ftp”帐户后还要更改权限

代码:

sudo chmod 777 /home/ftp

配置ftp:

备份一下源文件:

# cp /etc/vsftpd.conf /etc/vsftpd.conf_bak

然后修改

# vi /etc/vsftpd.conf

# gedit /etc/vsftpd.conf (vi 不熟的最好用 gedit )

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的基本选项

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

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

Anon_upload_enable=yes (开放上传权限)

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

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

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

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

Anon_world_readable_only=no

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

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

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

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

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

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

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

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

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

设置指定用户执行chroot

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

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

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

限制本地用户访问FTP

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

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

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

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

安全选项

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端口进行数据连接)

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

ps –xf |grep ftp

kill 进程号

配置的时候注意文件权限的问题,开启匿名和本地后,关键是文件权限的设置,为了给不同的用户分配不同的权限,可以生成一个组,例如ftpuser,然后赋 予它何时的权限例如755,chroot()设置可以使得本地用户限制在登录时的目录,这对于安全很重要,可以这是local_root指定本地用户登录时的目录,负责为/home下相应目录。

Ubuntu下FTP服务器的配置

文件传输协议 (FTP) 是一个 TCP 协议,用于在计算机之间上传和下载文件。FTP 工作在客户端/服务器模式下。服务器组件被称为 FTP 守护程序。它持续不断地临听来自远程客户端的 FTP 请求。当一个请求到达时,它管理登录和建立连接。在整个会话期间它执行 FTP 客户端发送来的任何命令。 可以通过两种方式来管理 FTP 服务器的访问:

o 匿名

o 授权

在匿名模式中,远程客户端可以使用 “anonymous” 或 “ftp” 缺省用户帐号并通过发送一个邮件地址做为密码来访问 FTP 服务器。在授权模式下一个用户必须拥有帐号和密码。用户所访问 FTP 服务器中目录和文件的权限是根据登录时所用帐号来定义的。一般来说,FTP 守护程序将隐藏在 FTP 服务器的根目录中并将其改到 FTP 家目录。这样就可以向远程传话隐藏文件系统的其他部分。

vsftpd - FTP 服务器安装

* vsftpd 是可在 Ubuntu 中使用的 FTP 守护程序之一。它在安装、设置和维护方面十分方便。要安装 vsftpd 您可以使用下列命令:

sudo apt-get install vsftpd

vsftpd - FTP 服务器配置

* 你可以编辑 vsftpd 配置文件,/etc/vsftpd.conf,来配置缺省设置。

anonymous_enable=YES:是否允许匿名ftp,如否,则选择NO;

local_enable=YES:是否允许本地用户登陆;

local_umask=022:设置本地用户的文件掩码为缺省022,默认值为077;

anon_upload_enable=YES:是否允许匿名上传文件;

anon_mkdir_write_enable=YES:是否允许匿名用户有创建目录的权利;

dirmessage_enable=YES:是否显示目录说明文件,缺省是YES,但需要手工创建.message文件;

xferlog_enable=YES:是否记录ftp传输过程;

connect_from_port_20=YES:是否确信端口传输来自20(ftp-data);

chown_username=username:是否改变上传文件的属主,如果需要,则输入一个系统用户名,可以把上传的文件都改成root属主;

xferlog_file=/var/log/vsftpd.log:ftp传输日志的路径和名字缺省是/var/log/vsftpd.log; xferlog_std_format=YES:是否使用标准的ftp xferlog模式;

idle_session_timeout=600:设置缺省的断开不活跃会话时间;

data_connection_timeout=120:设置数据传输超时时间;

nopriv_user=ftpsecure:运行vsftpd需要的非特权系统用户,缺省是nobody;

ascii_upload_enable=YES:是否使用ASCII方式上传文件;

ascii_download_enable=YES:是否使用ASCII方式下载文件;

ftpd_banner=Welcome to shuke FTP service:定制欢迎信息;

deny_email_enable=YES:是否禁止匿名用户使用某些邮件地址;

banned_email_file=/etc/vsftpd.banned_emails:如果禁止匿名用户使用某些邮件地址,则输入禁止的邮件地址的路径和文件名;

chroot_list_enable=YES:是否将系统用户限制在自己的home目录下;

chroot_list_file=/etc/vsftpd.chroot_list:如果限制系统用户在home目录下,则在列表中写出被禁止的用户列表;

max_clients=Number:如果以standalone模式启动,那么,只有$Number个用户可以连接,其他用户将得到错误信息,缺省是0,不限制用户数;

message_file:设置访问一个目录时获得的目录信息文件的文件名,缺省是.message。

请注意在配置文件中缺省的设置主要是出于安全考虑。上面每一个改变都会使系统的安全性更小,所以请只在您需要时才改变他们。

原文章地址/www/net/02/117.shtml

vsftpd.conf设置部分

引用:

VSFTPD的设置选项

VSFTPD的配置文件/etc/vsftpd/vsftpd.conf是个文本文件。以“#”字符开始的行是注释行。每个选项设置为一行,格式为 “option=value”,注意“=”号两边不能留空白符。除了这个主配置文件外,还可以给特定用户设定个人配置文件,具体介绍见后。

VSFTPD包中所带的vsftpd.conf文件配置比较简单,而且非常偏执狂的(文档自称:-))。我们可以根据实际情况对其进行一些设置,以使得VSFTPD更加可用。

连接选项

本部分主要是一些与建立FTP链接相关的选项。

监听地址与控制端口

listen_address=ip address

此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了在主机的哪个IP地址上监听FTP请求,即在哪个IP地址上提供 FTP服务。对于只有一个IP地址的主机,不需要使用此参数。对于多址主机,不设置此参数,则监听所有IP地址。默认值为无。

listen_port=port_value

指定FTP服务器监听的端口号(控制端口),默认值为21。此选项在standalone模式下生效。

FTP模式与数据端口

FTP 分为两类,PORT FTP和PASV FTP,PORT FTP是一般形式的FTP。这两种FTP在建立控制连接时操作是一样的,都是由客户端首先和FTP服务器的控制端口(默认值为21)建立控制链接,并通过 此链接进行传输操作指令。它们的区别在于使用数据传输端口(ftp- data)的方式。PORT FTP由FTP服务器指定数据传输所使用的端口,默认值为20。PASV FTP由FTP客户端决定数据传输的端口。 PASV FTP这种做法,主要是考虑到存在防火墙的环境下,由客户端与服务器进行沟通(客户端向服务器发出数据传输请求中包含了数据传输端口),决定两者之间的数 据传输端口更为方便一些。

port_enable=YES|NO

如果你要在数据连接时取消PORT模式时,设此选项为NO。默认值为YES。

connetc_from_port_20=YES|NO

控制以PORT模式进行数据传输时是否使用20端口(ftp-data)。YES使用,NO不使用。默认值为NO,但RHL自带的vsftpd.conf文件中此参数设为YES。

ftp_data_port=port number

设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。

port_promiscuous=YES|NO

默认值为NO。为YES时,取消PORT安全检查。该检查确保外出的数据只能连接到客户

端上。小心打开此选项。

pasv_enable=YES|NO

YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。

pasv_min_port=port number

pasv_max_port=port number

设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。

pasv_promiscuous=YES|NO

此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。

pasv_address=

此选项为一个数字IP地址,作为PASV命令的响应。默认值为none,即地址是从呼入的连接套接字(incoming connectd socket)中获取。

ASCII模式

默认情况下,VSFTPD是禁止使用ASCII传输模式。即使FTP客户端使用asc命令,指明要使用ASCII模式,但是,VSFTPD表面上接受了asc命令,而在实际传输文件时,还是使用二进制方式。下面选项控制VSFTPD是否使用ASCII传输模式。

ascii_upload_enable=YES|NO

控制是否允许使用ascii模式上传文件,YES允许,NO不允许,默认为NO。

ascii_download_enable=YES|NO

控制是否允许使用ascii模式下载文件,YES允许,NO不允许,默认为NO。

性能与负载控制

超时选项

idle_session_timeout=

空闲(发呆)用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为300。

data_connection_timeout=

空闲的数据连接的超时时间。默认值为300 秒。

accept_timeout=numerical value

接受建立联机的超时设定,单位为秒。默认值为60。

connect_timeout=numerical value

响应PORT方式的数据联机的超时设定,单位为秒。默认值为60。以上两个选项针对客户端的,将使客户端空闲1分钟后自动中断连接,并在中断1分钟后自动激活连接。

负载控制

max_clients=numerical value

此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了FTP服务器最大的并发连接数,当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。 ?

max_per_ip=numerical value

此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将影响到象网际快车这类的多进程下载软件。默认值为0,表示不限制。

anon_max_rate=value

设定匿名用户的最大数据传输速度value,以Bytes/s为单位。默认无。

local_max_rate=value

设定用户的最大数据传输速度value,以Bytes/s为单位。默认无。此选项对所有的用户都生效。此外,也可以在用户个人配置文件中使用此选项,以指定特定用户可获得的最大数据传输速率。

步骤如下:

①在vsftpd.conf中指定用户个人配置文件所在的目录,如:

user_config_dir=/etc/vsftpd/userconf

②生成/etc/vsftpd/userconf目录。

③用户个人配置文件是在该目录下,与特定用户同名的文件,如:

/etc/vsftpd/userconf/xiaowang

④在用户的个人配置文件中设置local_max_rate参数,如:

local_max_rate=80000

以上步骤设定FTP用户xiaowang的最大数据传输速度为80KBytes/s。

VSFTPD 对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s, 但实际的速度可能在80KBytes/s 到120KBytes/s 之间。当然,若是线路带宽不足时,速率自然会低于此限制。

用户选项

VSFTPD的用户分为三类:匿名用户、本地用户(local user)以及虚拟用户

匿名用户

anonymous_enable=YES|NO

控制是否允许匿名用户登录,YES允许,NO不允许,默认值为YES。

ftp_username=

匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp。

no_anon_password=YES|NO

控制匿名用户登入时是否需要密码,YES不需要,NO需要。默认值为NO。

deny_email_enable=YES|NO

此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址进行登录的匿名用户。即, 当匿名用户使用banned_email_file文件中所列出的e-mail进行登录时,被拒绝。显然,这对于阻击某些Dos攻击有效。当此参数生效 时,需追加banned_email_file参数

banned_email_file=/etc/vsftpd.banned_emails

指定包含被拒绝的e-mail地址的文件,默认文件为/etc/vsftpd.banned_emails。

anon_root=

设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/。

anon_world_readable_only=YES|NO

控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。

anon_upload_enable=YES|NO

控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。

anon_mkdir_write_enable=YES|NO

控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。

anon_other_write_enable=YES|NO

控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。

chown_uploads=YES|NO

是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认值为NO。

chown_username=whoever

指定拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用。不推荐使用root用户。

本地用户

在使用FTP服务的用户中,除了匿名用户外,还有一类在FTP服务器所属主机上拥有账号的用户。VSFTPD中称此类用户为本地用户(local users),等同于其他FTP服务器中的real用户。

local_enable=YES|NO

控制vsftpd所在的系统的用户是否可以登录vsftpd。默认值为YES。

local_root=

定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。默认值为无。

user_config_dir=

定义用户个人配置文件所在的目录。用户的个人配置文件为该目录下的同名文件。个人配置文件的格式与vsftpd.conf格式相同。例如定义 user_config_dir=/etc/vsftpd/userconf,并且主机上有用户xiaowang,lisi,那我们可以在 user_config_dir的目录新增名为xiaowang、lisi的两个文件。当用户lisi 登入时,VSFTPD则会读取 user_config_dir下lisi这个文件中的设定值,应用于用户lisi。默认值为无。

虚拟用户

guest_enable=YES|NO

若是启动这项功能,所有的非匿名登入者都视为guest。默认值为关闭。

guest_username=

定义VSFTPD的guest用户在系统中的用户名。默认值为ftp。

安全措施

用户登录控制

pam_service_name=vsftpd

指出VSFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。

/etc/vsftpd.ftpusers

VSFTPD禁止列在此文件中的用户登录FTP服务器。这个机制是在/etc/pam.d/vsftpd中默认设置的。

userlist_enable=YES|NO

此选项被激活后,VSFTPD将读取userlist_file参数所指定的文件中的用户列表。当列表中

的用户登录FTP服务器时,该用户在提示输入 密码之前就被禁止了。即该用户名输入后,VSFTPD查到该用户名在列表,VSFTPD就直接禁止掉该用户,不会再进行询问密码等后续步聚。默认值为 NO。

userlist_file=/etc/er_list

指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/er_list。

userlist_deny=YES|NO

决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。NO,只允许在文件中的用户登录FTP服务器。

tcp_wrappers=YES|NO

在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES。

目录访问控制

chroot_list_enable=YES|NO

锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。

chroot_list_file=/etc/vsftpd/chroot_list

指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。

chroot_local_users=YES|NO

将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化, chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、 shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。

passwd_chroot_enable

当此选项激活时,与chroot_local_user选项配合,chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO。 文件操作控制

hide_ids=YES|NO

是否隐藏文件的所有者和组信息。YES,当用户使用"ls -al"之类的指令时,在目录列表中所有文件的拥有者和组信息都显示为ftp。默认值为NO。

ls_recurse_enable=YES|NO

YES,允许使用"ls -R" 指令。这个选项有一个小的安全风险,因为在一个大型FTP站点的

根目录下使用"ls -R"会消耗大量系统资源。默认值为NO。

write_enable=YES|NO

控制是否允许使用任何可以修改文件系统的FTP 的指令,比如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE 以及SITE。默认值为NO,不过自带的简单配置文件中打开了该选项。

secure_chroot_dir=

这选项指向一个空目录,并且ftp用户对此目录无写权限。当vsftpd不需要访问文件系统时,这个目录将被作为一个安全的容器,用户将被限制在此目录中。默认目录为/usr/share/empty。

新增文件权限设定

anon_umask=

匿名用户新增文件的umask 数值。默认值为077。

file_open_mode=

上传档案的权限,与chmod 所使用的数值相同。如果希望上传的文件可以执行,设此值为0777。默认值为0666。

local_umask=

本地用户新增档案时的umask 数值。默认值为077。不过,其他大多数的FTP服务器都是使用022。如果您的用户希望的话,可以修改为022。在自带的配置文件中此项就设为了022。

提示信息

ftpd_banner=login banner string

此参数定义了login banner string(登录欢迎语字符串)。用户可以自行修改。预设值为无。当ftpd_banner设置后,将取代系统原来的欢迎词。

banner_file=/directory/vsftpd_banner_file

此项指定一个文本文件,当使用者登入时,会显示此该文件的内容,通常为欢迎话语或是说明。默认值为无。与ftpd_banner相比, banner_file是文本文件的形式,而ftpd_banner是字串格式。banner_file选项将取代ftpd_banner选项。

dirmessage_enable=YES|MO

控制是否启用目录提示信息功能。YES启用,NO不启用,默认值为YES。此功能启用后,当用户进入某一个目录时,会检查该目录下是否有message_file选项所指定的文档,若是有,则会出现此文档的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。

message_file=

此选项,仅在dirmessage_enable选项激活方生效。默认值为.message。

日志设置

xferlog_enable=YES|NO

控制是否启用一个日志文件,用于详细记录上传和下载。该日志文件由xferlog_file选项指定。默认值为NO,但简单配置文件中激活此选项。

xferlog_file=

这个选项设定记录传输日志的文件名。默认值为/var/log/vsftpd.log。

xferlog_std_format=YES|NO

控制日志文件是否使用xferlog的标准格式,如同wu-ftpd一样。使用xferlog格式,可以重新使用已经存在的传输统计生成器。然而,默认的日志格式更为可读性。默认值为NO,但自带的配置文件中激活了此选项。

log_ftp_protocol=YES|NO

当此选项激活后,所有的FTP请求和响应都被记录到日志中。提供此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。

其他设置

setproctitle_enable=YES|NO

YES,VSFTPD将在系统进程列表中显示每个会话(session)的状态。也就是说,进程报告将显示每个vsftpd会话在做什么(挂起、下载 等),如用ps -ef|grep ftp。出于安全的目的,可以考虑将此选项关闭。NO,进程报告只显示一个vsftpd进程在运行。默认值为 NO。

text_userdb_names=YES|No

当使用者登入后使用ls -al 之类指令时,目录列表的用户和组信息域,默认是出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。默认值为NO。

user_localtime=YES|NO

默认为NO。YES,VSFTPD显示目录列表时使用你本地时区的时间。默认是显示GMT时间。同样,由ftp命令“MDTM”返回的时间值也受此选项影响。

check_shell=YES|NO

此选项仅对不使用PAM方式的VSFTPD生效。当此选项关闭后,当本地用户登录时,VSFTPD不会检查/etc/shells文件以寻找一个有效的用户shell。默认为YES。

nopriv_user=

指定一个用户,当VSFTPD不想要什么权限时,使用此用户身份。这用户最好是一个专用的用户,而不是用户nobody。在大多数的机器上,nobody用户被用于大量重要的事情。默认值为nobody。

pam_service_name=

指明VSFTPD使用用PAM验证服务时的PAM配置文件名。默认值为ftp。

本文来源:https://www.bwwdw.com/article/7s74.html

Top