linux的ftp安装及配置

一、安装ftp服务

1.检查是否已经安装
rpm -qa| grep vsftpd


2.没安装则安装
centos用:
yum  -y  install vsftpd
ubuntu用:
apt-get install vsftpd

二、启动ftp服务

1.启动ftp服务:
service vsftpd start 
重启ftp
service vsftpd restart

2.让FTP每次开机自动启动,命令:  
chkconfig --level 35 vsftpd on

三、设置ftp权限

1.打开ftp设置文件

vi  /etc/vsftpd/vsftpd.conf

2.关闭匿名登录:

anonymous_enable=YES 改为 anonymous_enable=NO
ESC返回,输入“:wq”保存并推出

3.刷新防火墙

iptables -F

四、常用配置

其中vsftpd的主配置文件是/etc/vsftpd/vsftpd.conf

一:设置欢迎词,最大连接数

vi /etc/vsftpd/vsftpd.conf 

2.在最后添加,等号后就是欢迎词
ftpd_banner=welcome to here! 

3.表示最多可以有100个用户同时访问
Max_clients=100 

4.重启vsftpd即可!

二:不让指定用户登陆FTP站点

不想让他登陆到我们的FTP站点,那我可以把用户lilei添加到

vi /etc/vsftpd.ftpusers 

三:只允许一个人可以登陆FTP服务器

vi /etc/vsftpd/vsftpd.conf 

到最后添加2条:
userlist_deny=NO   #这个列表里的人不拒绝,其他人拒绝(包括匿名)
userlist_file=/etc/mp   #指明列表的路径

五、其它配置

vsftpd配置文件采用“#”作为注释符,以“#”开头的行和空白行在解析时将被忽略,其余的行被视为配置命令行,每个配置命令的“=”两边不要留有空格。对于每个配置命令,在配置文件中还列出了相关的配置说明,利用vi编辑器可实现对配置文件的编辑修改。

0. 方法如下:

vi /etc/vsftpd/vsftpd.conf

1.登录和对匿名用户的设置

write_enable=YES               #是否对登录用户开启写权限。属全局性设置。默认NO
local_enable=YES               #是否允许本地用户登录FTP服务器。默认为NO
anonymous_enable=YES          #设置是否允许匿名用户登录FTP服务器。默认为YES
ftp_username=ftp                #定义匿名用户的账户名称,默认值为ftp。
no_anon_password=YES         #匿名用户登录时是否询问口令。设置为YES,则不询问。默认NO
anon_world_readable_only=YES   #匿名用户是否允许下载可阅读的文档,默认为YES。
anon_upload_enable=YES        #是否允许匿名用户上传文件。只有在write_enable设置为YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO。
anon_mkdir_write_enable=YES   #是否允许匿名用户创建目录。只有在write_enable设置为    YES时有效。且匿名用户对上层目录有写入的权限。默认为NO。
anon_other_write_enable=NO    #若设置为YES,则匿名用户会被允许拥有多于上传和建立目录的权限,还会拥有删除和更名权限。默认值为NO。

2.设置欢迎信息

用户登录FTP服务器成功后,服务器可向登录用户输出预设置的欢迎信息。

ftpd_banner=Welcome to my FTP server.  #该配置项用于设置比较简短的欢迎信息。若欢迎信息较多,则可使用banner_file配置项。
banner_file=/etc/vsftpd/banner   #设置用户登录时,将要显示输出的文件。该设置项将覆盖ftpd_banner的设置。
dirmessage_enable=YES       #设置是否显示目录消息。若设置为YES,则当用户进入特定目录(比如/var/ftp/Linux)时,将显示该目录中的由message_file配置项指定的文件(.message)中的内容。
message_file=.message          #设置目录消息文件。可将显示信息存入该文件。该文件需要放在 相应的目录(比如/var/ftp/linux)下

3.设置用户登录后所在的目录

local_root=/var/ftp     #设置本地用户登录后所在的目录。默认配置文件中没有设置该项,此时用户登录FTP服务器后,所在的目录为该用户的主目录,对于root用户,则为/root目录。
anon_root=/var/ftp   #设置匿名用户登录后所在的目录。若未指定,则默认为/var/ftp目录。

4.控制用户是否允许切换到上级目录

   在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行 下,执行“cd..”命令后,用户将切换到其上级目录/var,若继续执行该命令,则可进入Linux系统的根目录,从而可以对整个Linux的文件系统 进行操作。

若设置了write_enable=YES,则用户还可对根目录下的文件进行改写操作,会给系统带来极大的安全隐患,因此,必须防止用户切换到Linux的根目录,相关的配置项如下:

chroot_list_enable=YES       #设置是否启用chroot_list_file配置项指定的用户列表文件。设置为YES则除了列在j/etc/vsftpd/chroot_list文件中的的帐号外,所有登录的用户都可以进入ftp根目录之外的目录。默认NO
chroot_list_file=/etc/vsftpd/chroot_list      #用于指定用户列表文件,该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录。
chroot_local_user=YES       #用于指定用户列表文件中的用户,是否允许切换到上级目录。默认NO

注意:要对本地用户查看效果,需先设置local_root=/var/ftp具体情况有以下几种:

  1. chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。
  2. chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。
  3. chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。
  4. chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。
  5. 当用户不允许切换到上级目录时,登录后FTP站点的根目录“/”是该FTP账户的主目录,即文件的系统的/var/ftp目录。

5.设置访问控制

(1)设置允许或不允许访问的主机(见TBP14)

tcp_wrappers=YES用来设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制。默认设置为YES,vsftpd服务器会检查/etc/hosts.allow和/etc /hosts.deny中的设置,以决定请求连接的主机是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
比如,若要仅允许192.168.168.1~192.168.168.254的用户,可以访问连接vsftpd服务器,则可在/etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.168.0/255.255.255.0 :allow
all:all:deny

(2)设置允许或不允许访问的用户

对用户的访问控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件来控制实现。相关配置命令如下:

userlist_enable=YES    #决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效。
userlist_deny=YES      #决定/etc/vsftpd/user_list文件中的用户是允许访问还是不允许访问。

若设置为YES,则/etc/vsftpd/user_list 文件中的用户将不允许访问FTP服务器;
若设置为NO,则只有vsftpd.user_list文件中的用户,才能访问FTP服务器。

6.设置访问速度

anon_max_rate=0       #设置匿名用户所能使用的最大传输速度,单位为b/s。若设置为0,则不受速度限制,此为默认值。
local_max_rate=0    #设置本地用户所能使用的最大传输速度。默认为0,不受限制。

7.定义用户配置文件

在vsftpd服务器中,不同用户还可使用不同的配置,这要通过用户配置文件来实现。

user_config_dir=/etc/vsftpd/userconf //用于设置用户配置文件所在的目录。
  • 设置了该配置项后,当用户登录FTP服务器时,系统就会到/etc/vsftpd/userconf目录下读取与当前用户名相同的文件,并根据文件中的配 置命令,对当前用户进行更进一步的配置。
  • 比如,利用用户配置文件,可实现对不同用户进行访问的速度进行控制,在各用户配置文件中,定义 local_max_rate配置,以决定该用户允许的访问速度。

8.与连接相关的设置

listen=YES     
#设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好的方式,此时listen必须设置为YES, 此为默认值,建议不要更改。很多与服务器运行相关的配置命令,需要此运行模式才有效。若设置为NO,则vsftpd不是以独立的服务运行,要受 xinetd服务的管理控制,功能上会受限制。

max_clients=0 
#设置vsftpd允许的最大连接数,默认为0,表示不受限制。若设置为150时,则同时允许有150个连接,超出的将拒绝建立连接。只有在以standalone模式运行时才有效。

max_per_ip=0
# 设置每个IP地址允许与FTP服务器同时建立连接的数目。默认为0,不受限制。通常可对此配置进行设置,防止同一个用户建立太多的连接。只有在以standalone模式运行时才有效。

listen_address=IP地址        
#设置在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器所绑定的所有IP地址进行侦听。只有在以standalone模式运行时才有效。 对于只绑定了一个IP地址的服务器,不需要配置该项,默认情况下,配置文件中没有该配置项。若服务器同时绑定了多个IP地址,则应通过该配置项,指定在哪 个IP地址上提供FTP服务,即指定FTP服务器所使用的IP地址。
注意:设置此值前后,可以通过netstat -tnl对比端口的监听情况

accept_timeout=60            
#设置建立被动(PASV)数据连接的超时时间,单位为秒,默认值为60。
connect_timeout=60    
# PORT方式下建立数据连接的超时时间,单位为秒。
data_connection_timeout=300   
#设置建立FTP数据连接的超时时间,默认为300秒。

idle_session_timeout=600      
#设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒,默认为600秒。即设置发呆的逾时时间,在这个时间内,若没有数据传送或指令的输入,则会强行断开连接。
pam_service_name=vsftpd     
#设置在PAM所使用的名称,默认值为vsftpd。

setproctitle_enable=NO|YES   
#设置每个与FTP服务器的连接,是否以不同的进程表现出来,默认值为NO,此时只有一个名为vsftpd的进程。若设置为YES,则每个连接都会有一个vsftpd进程,使用“ps -ef|grep ftp”命令可查看到详细的FTP连接信息。安全起见,建议关闭。

9.FTP工作方式与端口设置

(1)FTP工作方式简介

FTP的工作方式有两种,一种是PORT FTP,另一种是PASV FTP。
下面介绍其工作方式。
二者的区别在于PORT FTP的数据传输端口是由FTP服务器指定的,
而PASV FTP则是由FTP客户端指定的,而且每次数据连接所使用的端口号都不同。
正因为如此,所以在CuteFTP等FTP客户端软件中,其连接类型设置项中有PORT和PASV两种选择。

当FTP服务器设置为PASV工作模式时,客户端也必须设置为PASV连接类型。
若客户端连接类型设置为PORT,则能建立FTP连接,但在执行ls或get等需要数据请求的命令时,将会出现无响应并最终报告无法建立数据连接。

(2)与端口相关的配置

listen_port=21               
# 设置FTP服务器建立连接所侦听的端口,默认值为21。
连接非标准端口示例:ftp www.sunflower.org 7000
connect_from_port_20=YES   
# 默认值为YES,指定FTP数据传输连接使用20端口。若设置为NO,则进行数据连接时,所使用的端口由ftp_data_port指定。

ftp_data_port=20            
#设置PORT方式下FTP数据连接所使用的端口,默认值为20。
pasv_enable=YES|NO        
#若设置为YES,则使用PASV工作模式;若设置为NO,使用PORT模式。默认为YES,即使用PASV模式。
pasv_max_port=0            
#设置在PASV工作方式下,数据连接可以使用的端口范围的上界。默认值为0,表示任意端口。
pasv_mim_port=0            
#设置在PASV工作方式下,数据连接可以使用的端口范围的下界。默认值为0,表示任意端口。

10.设置传输模式

FTP在传输数据时,可使用二进制(Binary)方式,也可使用ASCII模式来上传或下载数据。

ascii_download_enable=YES #设置是否启用ASCII模式下载数据。默认为NO。
ascii_upload_enable=YES    #设置是否启用ASCII模式上传数据。默认为NO。

11.设置上传文档的所属关系和权限

(1)设置匿名上传文档的属主

chown_uploads=YES           
#用于设置是否改变匿名用户上传的文档的属主。默认为NO。若设置为YES,则匿名用户上传的文档的属主将被设置为chown_username配置项所设置的用户名。

chown_username=whoever     
#设置匿名用户上传的文档的属主名。只有chown_uploads=YES时才有效。建议不要设置为root用户。 但系统默root

(2)新增文档的权限设定

local_umask=022            
#设置本地用户新增文档的umask,默认为022,对应的权限为755。umask为022,对应的二进制数为000 010 010,将其取反为111 101 101,转换成十进制数,即为权限值755,代表文档的所有者(属主)有读写执行权,所属组有读和执行权,其他用户有读和执行权。022适合于大多数情 况,一般不需要更改。若设置为077,则对应的权限为700。
anon_umask=022               #设置匿名用户新增文档的umask。默认077
file_open_mode=0755          #设置上传文档的权限。权限采用数字格式。 默认0666

12.日志文件

xferlog_enable=YES             #是否启用上传/下载日志记录。默认为NO
xferlog_file=var/log/vsftpd.log #设置日志文件名及路径。需启用xferlog_enable选项
xferlog_std_format=YES           #日志文件是否使用标准的xferlog日志文件格式(与wu-ftpd使用的格式相同) 。默认为NO

13.其他设置

text_userdb_names=NO       
#设置在执行ls命令时,是显示UID、GID还是显示出具体的用户名或组名称。默认为NO,以UID和GID方式显示,若希望显示用户名和组名称,则设置为YES。
ls_recurse_enable=YES       
#若设置为YES,则允许执行“ls –R”这个命令,默认值为NO。在配置文件中该配置项被注释掉了,与此类似的还有一些配置,需要启用时,将注释符去掉并进行YES或NO的设置即可
FTP服务器配置 VSFTP配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数: anonymous_enable=yes/no 是否允许匿名用户访问 anon_upload_enable=yes/no 是否允许匿名用户上传文件 anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录 anon_other_write_enable=yes/no 匿名用户和虚拟用户是否拥有删除权限 local_enable=yes/no 是否允许本地用户登陆 write_enable=yes/no 设置全局是否可写 anon_root=/var 指定匿名用户目录 chroot_local_user=yes 锁定所有用户到用户主目录 chroot_list_enable=yes/no 锁定列表中的用户到主目录,需要配合下一参数使用 chroot_list_file=/etc/vsftpd/chroot_list 指定存储被锁定用户的列表文件位置 chown_uploads=yes/no 匿名用户上传所有者指定功能,需要与下一参数配合使用 chown_username=用户名 指定匿名用户上传文件的所有者 max_clients=300 最大客户端连接数为300 anon_max_rate=30000 匿名用户和虚拟用户限速为30K/S local_max_rate=30000 本地用户限速为30K/S max_per_ip=10 每个IP最大连接数 listen_port=22 更改监听端口 实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,最大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件: 直接添加以下选项: [root@LidadeFedora vsftpd]# service vsftpd restart 添加用户ftp1,设置登录脚本为 /sbin/nologin: vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件"testLocal",在"/var/ftp/pub"新建一个文件"testAnon"。 由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才能读取该文件 设置/var/ftp/pub权限为777,表示所有用户均有读写权限. 由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。 客户端用Flashfxp测试:新建站点"VsftpTest",输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击"连接"按钮: 由于没有使用选项:local_root,登陆本地用户时自动跳转到该用户的主目录.没有使用chroot_local_user=yes,所以本地用户可以浏览整个文件系统中他有权限读取的文件和文件夹: 切换到目录"/var/ftp/pub",该目录的权限为777,上传一个10M以上的文件,测试ftp1的上传速度: 新建文件夹和删除权限测试省略。下面测试匿名用户权限:勾选"匿名"选项并连接: 匿名用户登陆成功: 进入pub目录,尝试删除testAnon文件失败,说明这里是配置文件中的anon_other_write_enable=no生效了。最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许下载的要求: 最后测试匿名用户的下载速度: vsftp配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值