大家好,关于centosftp服务器搭建很多朋友都还不太明白,今天小编就来为大家分享关于centos搭建ftp服务的知识,希望对各位有所帮助!
一、如何在Centos下安装ftp服务器
一:安装vsftpd
查看是否已经安装vsftpd
2
二:基于虚拟用户的配置
所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。
修改配置文件
配置文件贴出来吧
3
三:使用Berkeley DB进行认证
yum install db4 db4-utils
然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt,注意奇行是用户名,偶行是密码
4
接着,生成虚拟用户认证的db文件
编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
最后,创建虚拟用户配置文件
5
设置FTP根目录权限
最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限
6
添加防火墙,把ftp的21端口开放 vi/etc/sysconfig/iptables
7
经过以上步骤我们就完成了ftp服务器的搭建,让我们畅游ftp吧
二、Linux搭建ftp在windows下这么访问,需要怎么设置
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来行,但是想要使用好它,绝没有单单理解这10来行这么简单,需要对每一行所定义的参数都理解透彻才可以.
匿名用户的配置:
anonymous_enable=YES
//允许匿名用户登录
anon_root=/var/ftp/anonymous
//设定匿名用户登录后的根目录
anon_upload_enable=YES
//允许匿名用户上传文件
只需要打开如上的参数即可,不用做其他的设置.本地用户登录配置
首先说一下概念,什么是本地用户,本地用户就是你系统/home目录下的用户,当然有的用户建立时候使用-m命令,使用户在/home下没有目录,但是这个词的意思就是系统里面有的用户.
local_enable=YES
//允许本地用户登录
local_root=/home
//限制本地用户登录后的根目录
eg:
[root@centos
ftp]#
ftp
192.168.0.125
Connected
to
192.168.0.125.
220
(vsFTPd
2.0.5)
530
Please
login
with
USER
and
PASS.
530
Please
login
with
USER
and
PASS.
KERBEROS_V4
rejected
as
an
authentication
type
Name
(192.168.0.125:root):
xu
331
Please
specify
the
password.
Password:
230
Login
suessful.
Remote
system
type
is
UNIX.
Using
binary
mode
to
transfer
files.
ftp>
ls
227
Entering
Passive
Mode
(192,168,0,125,135,123)
150
Here
es
the
directory
listing.
drwx------
2
505
503
4096
Jun
26
09:42
chuan
drwx------
2
507
507
4096
Jun
30
22:26
ftp
drwx------
2
504
502
4096
Jun
26
09:42
joe
drwx------
2
506
503
4096
Jun
26
09:43
laomeng
drwx------
2
502
504
4096
Jun
26
09:42
master
drwx------
2
503
502
4096
Jun
26
09:42
mike
drwx------
2
500
500
4096
Jun
25
21:34
xiaochuan
drwxrwxrwx
2
508
508
4096
Jun
30
22:39
xu
drwx------
2
501
501
4096
Jun
25
20:25
xujunchuan
226
Directory
send
OK.
ftp>
pwd
257
"/home"
限制用户目录部分
chroot_local_use=YES|NO
//是否将本地用户锁定在家目录
chroot_list_enable=YES|NO
//是否锁定使用者在家目录中
chroot_list_file=/etc/vsftpd/chroot_list
//一般情况下都将这个文件写在/etc/vsftpd目录下,这个文件就是设置锁定用户的一个列表文件,其中一行就代表一个用户
设置欢迎信息
dirmessage_enable=YES
message_file=.message
[root@centos
ftp]#
cd
/home
[root@centos
home]#
vi
.message
welt
to
VSFTP.............
C:\Documents
and
Settings\Administrator>ftp
192.168.0.125
Connected
to
192.168.0.125.
220
(vsFTPd
2.0.5)
User
(192.168.0.125:(none)):
xu
331
Please
specify
the
password.
Password:
230-welt
to
VSFTP.............
230
Login
suessful.
ftp>
三、centos搭建ftp服务
一:安装FTP
输入vsftpd-v判断是否安装成功
启动/停止/重启FTP
二:添加ftp用户
1:创建ftp用户并设置密码
2:配置该用户仅能通过 FTP访问
三:FTP配置
1:FTP的配置文件在/etc/vsftpd/vsftpd.conf,找到以下配置并修改或添加
2:配置可以登录ftp用户
在/etc/vsftpd/user_list文件中添加可以登录ftp的用户:
3:配置ftp用户登录后访问的目录
在/etc/vsftpd目录下新建一个userconfig目录,在userconfig目录下配置用户的登录目录,例:注意:文件名就是你想要配置的用户名称
在vsftpd文件中添加
配置完成后重启FTP更新配置
四:创建测试目录及文件
创建目录
设置访问权限:
创建一个测试文件,并在里面写上this is test!!!
五:防火墙配置
禁用防火墙或者开启21端口和30000端口
(1):开启21端口
530问题
1.cat/etc/passwd,查看你登陆的账户主目录和登陆shell对应的是什么,我的是/sbin/nologin
用户名:口令:用户标识号:组标识号:注释*描述:主目录:登录Shell
2.查看cat/etc/shells是否有你用户的主目录和登陆shell,没有进行添加,保存,退出。
通过其他服务器ftp
先安装ftp指令 yum install ftp
连接 ftp 192.168.6.36
四、如何在linux下开启FTP服务
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令rpm-qa|grepvsftpd来查看是否安装相应的包,如果没有安装那么可以执行yum-yinstallvsftpd来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:
useradd-s/sbin/nologin-d/home/ftp_testftp_test
目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,
可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:
passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim/etc/vsftpd/vsftpd.conf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录
现在保存配置文件,执行systemctl start vsftpd.service启动vsftp服务,然后可以通过命令:systemctl status vsftpd.service查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常
现在基本的ftp服务就部署完了,客户端可以正常上传,,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2属于比较新的版本,为了安全*做了一些限制,如果你此时想通过chmoda-w/home/ftp_test来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:
配置完这两项以后保存退出,然后执行systemctl restart vsftpd.service重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的
现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户
五、如何建立ftp服务器
FTP服务器平台:Liunx平台 OR Windows server平台
1、liunx系统:(centos、Debian,用centos就可以了,免费)
仅用FTP用的话,推荐用linux,理由linux更加稳定,没有那么多数据冗余,安全*高,用FTP上传方便快捷传输到某文件夹下,windows的话,也是没有问题但是windows的iis经常出现问题,策略问题,就会导致windows下fxp会造成间接*的连接失败。
搭建:
方案1、如果想在liunx中用界面操作,Centos+宝塔面板+PureFTPd(是一款liunx下免费的FTP服务器软件)组合,简单快捷。
方案2:linux+samba推荐(Samba是著名的开源软件项目之一,它在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,从而使得跨平台的文件共享变得更加容易。在部署Windows、Linux/UNIX混合平台的企业环境时,选用Samba可以很好地解决不同系统之间的文件互访问题。)
2、Windows server(2012、2016、2019均可,太低版的就不要用了)
如果这台服务器还做文件共享用的话,那就推荐用Windows服务器版,加上域帐户就可以控制权限。
Windows搭建就比较简单了,相信不用说都知道,用系统自带的IIS+FTP就可以了。当然了,如果用FileZilla Server更好,虽然很小,但很强悍。